2016-10-30 2 views
-1

Я пытаюсь сделать минимальный пример для набора данных моего другого вопроса. В настоящее время у меня есть следующие, слишком сложен и errorprone за то, что список имен файлов и добавления их полные имена файловКак создать строковый список строк в R?

data = read.csv("/home/masi/dataList.csv",header = FALSE,sep = ",") 
i = 1 
for (d in data) { 
     data[i] = paste("/home/masi/Documents/CSV/", d, sep="") 
     i = i + 1 
} 

dataList.csv

P103C1.csv 
P103C2.csv 
P111C1.csv 

псевдокод, чтобы в колонках вещь первой и транспонировать, но вы все еще не можете его зацикливать как for (d in data) {...}; и добавление еще раз

data = t(c("P103C1.csv" "P103C2.csv" "P111C1.csv")) 

i = 1 
for (d in data) { 
     data[i] = paste("/home/masi/Documents/CSV/", d, sep="") 
     i = i + 1 
} 

На самом деле, я думаю, имея транспонирование есть не очень хорошая идея, и лучше и более простой метод должен существовать.

Ожидаемый результат: что-то эквивалентное data = read.csv("/home/masi/dataList.csv",header = FALSE,sep = ",").

ОС: Debian 8.5
R: 3.1.1

+0

Ваш вопрос не является понятным вообще. –

+0

@ChirayuChamoli Я добавил ожидаемый результат. Можете ли вы указать, что не ясно? –

+0

@ZheyuanLi Спасибо! Я удалил его из комментариев и добавил его явно как собственный блок. –

ответ

1

Вам не нужно, чтобы создать строку в этом случае, как у вас уже есть все файлы в datalist.csv. Создайте список из datalist.csv, а затем подайте в цикл.

listoffiles=list("P103C1.csv","P103C2.csv","P111C1.csv") 
files=list() 

for(i in 1:length(listoffiles)){ 
    files[[i]]=read.csv(listoffiles[[i]], header = F, sep = ',') 
    } 
+0

Отлично! Только разделитель должен быть пустым 'sep =" "' для работы. –

+0

Я положил этот sep на первую строку 'read.csv'. Виноват. –

Смежные вопросы