我有一种情况,我需要从每个 csv 文件(总文件数 = 40)中获取一列(或一个变量),我的最终结果应该有一个包含 40 列相同变量的数据框。 我通过使用这个网站尽了最大的努力,这是我到目前为止所做的:
$#*******************************************
theFiles <- list.files(pattern=glob2rx('*.csv'))
datafile<- lapply(theFiles,read.csv, header= T, sep = ",")
rain<- vector()
head(theFiles)
All<- for (i in 1:length(datafile)) {
#do stuff here
data_from_csv <- as.data.frame(datafile[i])
rain <- list(rain, data_from_csv[,8])
# extract column no 8 from each file
# if i use vector then its producing only one
}
#*****************************$
结果是一个列表(列表(列表(...值,结构和名称等,除了值之外不一定有意义。我无法检查维度,因为它是一个列表,我不能'不要更改为数据框,因为尽管我有 40 个文件,但只出现 2 个列表。 因此,我请求大家解决这个问题。 之所以进入不同的栏目是因为他们来自不同的地方。
干杯
最佳答案
尝试 sqldf
包中的 read.csv.sql
函数。它允许您直接从 csv 文件中选择特定的列。
data <- read.csv.sql(theFile, sql="select col8 from file")
关于从 csv 文件列表中检索指定列以在 R 中创建数据数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16320667/