Позвольте мне начать с того, что я новичок в R, поэтому любое решение с подробным объяснением будет оценено, чтобы я мог учиться на нем.Как отформатировать R data.frame output?
У меня есть набор файлов CSV со следующими строками информации:
"ID" "Дата" "A" "B" (где А и В некоторых точек данных)
Я пытаясь получить результат в значимой манере и зацикливаться на том, что мне не хватает.
observations <- funtion(dir, id= 1:10){
#get all file names in a vector
all_files <- list.files(directory, full.names=TRUE)
#get the subset of files we want to read
file_contents <- lapply(all_files[id], read.csv)
#cbind the file contents
output <- do.call(rbind, file_contents)
#remove all NA values
output <- output[complete.cases(output), ]
#at this point output is a data.frame so display the output
table(output[["ID"]])
}
Мой выходной ток:
2 4 8 10 12
1000 500 200 150 100
, который является правильным, но мне это нужно в виде колонки, так что можно понять, посмотрев на него. Выход, который я пытаюсь получить, приведен ниже:
id obs_total
1 2 1000
2 4 500
3 8 200
4 10 150
5 12 100
Что мне здесь не хватает?
Вы можете использовать 'as.data.frame (table (output [[" ID "]]))'. –
@ danas.zuokas, так как вывод уже является фреймом данных, есть более простой способ, чем преобразование в таблицу, а затем обратно в кадр данных? В этом случае мне нужно переименовать столбец для obs_total, потому что это столбец без заголовка, иначе – Shawn
ok Я понял, как переименовать столбцы после использования as.data.frame. Я использовал: colnames (output) <- c ("ID", "obs_total") – Shawn