Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R+;将结果列表转换为数据帧_R_Dataframe_Lapply - Fatal编程技术网

R+;将结果列表转换为数据帧

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) 但是我没有得到想要的结果。有人能指导吗 谢谢 添加部分

我正在一次处理多个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)
但是我没有得到想要的结果。有人能指导吗

谢谢

添加部分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

我更喜欢这个答案,因为它不会将结果转换为字符串。另一个答案是将结果转换成字符串。我更喜欢这个答案,因为它不会将结果转换成字符串。另一个答案是将结果转换为字符串。