чтение таблицы в R?


У меня есть txt-файл со следующей структурой:

NAME     DATA1    DATA2
a        10       1,2,3
b        6        8,9
c        20       5,6,7 ,8

Первая строка представляет заголовок, а данные разделенывкладками . Мне нужно поместить элементы DATA1 в список или вектор таким образом, чтобы я мог пересечь элементы один за другим.

Также мне нужно извлечь элементы DATA2 для каждого NAME и поместить их в список, чтобы я мог пройти затем по отдельности, например, получить элементы 8,9 для NAME b и поместить их в список. (Обратите внимание, что третья запись имеет пробел в списке в DATA2 между 7 и запятой).

Как я могу сделать обе эти операции? Я знаю, что могу использовать read.table и $ для доступа к отдельным элементам, но я застрял.

info<-read.table("table1", header=FALSE,sep="t")
namelist<-list(info$NAME)
1 2

1 ответ:

Запустите эту демонстрацию и посмотрите на структуру n, d1, и d2 - это должно помочь вам начать:

df = read.table(text="NAME\tDATA1\tDATA2
a\t10\t1,2,3
b\t6\t8,9
c\t20\t5,6,7 ,8", 
                header= TRUE, 
                stringsAsFactors=FALSE,
                sep='\t')

n  = df$NAME
d1 = df$DATA1
d2 = lapply(strsplit(df$DATA2, ","), 
            as.numeric)
names(d2) = n

d2['b'][1] # access first element in list named 'b'

lapply(d2, FUN=mean) # mean of all rows in d2