Функция R / l oop для получения значений столбца - PullRequest
0 голосов
/ 20 февраля 2020
GT  VB  WM
23  34  28
34  27  33
    44  46
    54

У меня есть данные, подобные приведенным выше, в файле csv. Мне нужен R-скрипт для извлечения по столбцам значений либо по l oop, либо функция при передаче аргументов в качестве имени переменной. Пример. Когда я набираю GT, я должен получить соответствующие значения без NA, такие как

GT
23 34 

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

На основании всей предоставленной вами информации следующие R-команды («R-скрипт») сделают это за вас. Я предполагаю, что файл CSV содержит 3 столбца с именами GT, VB и WM в первой строке, и есть 4 строки данных, начинающихся со строки 2. Я также предполагаю, что файл на самом деле представляет собой разделенный запятыми формат файла, это означает, что столбцы (включая строку заголовка) разделены запятыми.

df <- read.csv("myfile.csv")

Если вы не хотите, чтобы значения NA отображались при вводе имени столбца, вам придется удалить NA для каждого элемента фрейма данных, сохраняя результаты в виде списка (поскольку фрейм данных не может иметь столбцы неравной длины), используя либо lapply, либо sapply.

df.list <- sapply(df, FUN=function(x) x[!is.na(x)])

, а затем присоедините к нему:

attach(df.list)

При вводе имен столбцов должны возвращаться исходные значения с пропущенным символом NA.

GT  
[1] 23 34

VB
[1] 34 27 44 54

WM
[1] 28 33 46

Когда вы закончите, отсоедините от этого измененного объекта R, как есть хорошая практика для этого.

detach(df.list) # Good practice

И это именно то, что вы сказали. Не больше и не меньше.

данные

library(tibble)
df <- tribble(~GT,  ~VB,  ~WM,
23,  34,  28,
34,  27,  33,
NA,  44,  46,
NA,  54,  NA)
0 голосов
/ 20 февраля 2020

lapply(df, na.omit)

создает список векторов, в которых удалены все NA.

...