R+;将结果列表转换为数据帧
我正在一次处理多个csv文件R+;将结果列表转换为数据帧,r,dataframe,lapply,R,Dataframe,Lapply,我正在一次处理多个csv文件 getResult<-function(df){ c(runif(1, 0, 1), runif(1, 0, 1)) } filenames <- list.files("temp", pattern="*.csv", full.names=TRUE) ldf <- lapply(filenames, read.csv) res <- lapply(ldf, getResult) 但是我没有得到想要的结果。有人能指导吗 谢谢 添加部分
getResult<-function(df){
c(runif(1, 0, 1), runif(1, 0, 1))
}
filenames <- list.files("temp", pattern="*.csv", full.names=TRUE)
ldf <- lapply(filenames, read.csv)
res <- lapply(ldf, getResult)
但是我没有得到想要的结果。有人能指导吗
谢谢
添加部分dput(res)输出:
您可以使用sapply()
而不是lappy()
来计算res
。这将使矩阵具有与文件数量对应的两行和两列。然后在data.frame()
中使用t()
将矩阵转换为两列
res <- sapply(ldf, getResult)
data.frame(t(res),filenames)
res您可以使用sapply()
而不是lappy()
来计算res
。这将使矩阵具有与文件数量对应的两行和两列。然后在data.frame()
中使用t()
将矩阵转换为两列
res <- sapply(ldf, getResult)
data.frame(t(res),filenames)
res您可以尝试以下内容
data.frame(do.call(rbind, res), filenames)
do.call
将调用列表res
上的rbind
函数,然后data.frame
将列绑定到data.frame
您可以尝试以下操作
data.frame(do.call(rbind, res), filenames)
do.call
将调用列表res
上的rbind
函数,然后data.frame
将列绑定到data.frame
我更喜欢这个答案,因为它不会将结果转换为字符串。另一个答案是将结果转换成字符串。我更喜欢这个答案,因为它不会将结果转换成字符串。另一个答案是将结果转换为字符串。