R 不指定输入的cbind数据
我有一段代码,我想找到我的数据。问题是我不会总是有八个数据文件要cbind。我想保留下面的代码,如果我有五个,只导入五个。 原因是这样的。我将始终有1-100个数据帧到cbind,我不想总是手动告诉R到cbind 1或100。我只想要cbind(1:100),并且总是cbind需要的cbindR 不指定输入的cbind数据,r,dataframe,cbind,R,Dataframe,Cbind,我有一段代码,我想找到我的数据。问题是我不会总是有八个数据文件要cbind。我想保留下面的代码,如果我有五个,只导入五个。 原因是这样的。我将始终有1-100个数据帧到cbind,我不想总是手动告诉R到cbind 1或100。我只想要cbind(1:100),并且总是cbind需要的cbind finaltable<- cbind(onea, twoa, threea, foura, fivea, sixa, sevena, eighta) finaltable如果没有更多数据,下面是一
finaltable<- cbind(onea, twoa, threea, foura, fivea, sixa, sevena, eighta)
finaltable如果没有更多数据,下面是一个人为的例子。首先,我将制作一些示例文件,每个示例文件中的行数相同:
filenames <- paste0(c('onea', 'twoa', 'threea', 'foura'), '.csv')
for (fn in filenames)
write.csv(matrix(runif(5), nc = 1), file = fn, row.names = FALSE)
文件名您可以查看do.call(cbind,list(…)
其中list
是您的数据列表。因此,只需从data.frames或matrix列表中的文件加载数据,并应用do.call
命令即可。好吧,我是这样读取文件的:#######检查目录中的所有文件##############################35,对我的代码的唯一更改是将我的变量文件名
替换为列出所有文件
,并将读取.csv
替换为读取.table
。您的列表已根据readinfles()
函数按正确顺序排序。Myret
变量将为每个文件包含一列—以文件修改时间的递增顺序排列。你试过我的密码吗?@r2evans,这就是我的密码:ret
(filenames <- list.files(pattern = '*.csv'))
## [1] "foura.csv" "onea.csv" "threea.csv" "twoa.csv"
(ret <- do.call(cbind, lapply(filenames,
function(fn) read.csv(fn, header = TRUE))))
## V1 V1 V1 V1
## 1 0.9091705 0.4934781 0.7607488 0.4267438
## 2 0.9692987 0.4349523 0.6066990 0.9134305
## 3 0.6444404 0.8639983 0.1473830 0.9844336
## 4 0.7719652 0.1492200 0.7731319 0.9689941
## 5 0.9237107 0.6317367 0.2565866 0.1084299
(ret <- do.call(cbind, lapply(filenames[1:2],
function(fn) read.csv(fn, header = TRUE))))
## V1 V1
## 1 0.9091705 0.4934781
## 2 0.9692987 0.4349523
## 3 0.6444404 0.8639983
## 4 0.7719652 0.1492200
## 5 0.9237107 0.6317367