R 函数中的列表应返回多个结果,并将它们作为一个数据帧
我希望这个函数返回一个列表,首先是列的名称,然后是数据帧。但是返回数据帧不起作用。它似乎与数据框的大小相适应。但我不知道如何解决这个问题R 函数中的列表应返回多个结果,并将它们作为一个数据帧,r,R,我希望这个函数返回一个列表,首先是列的名称,然后是数据帧。但是返回数据帧不起作用。它似乎与数据框的大小相适应。但我不知道如何解决这个问题 set.seed(1) a <- rnorm(1:5,0,1) b <- rnorm(1:5,0,1) c <- rnorm(1:5,0,1) df <- data.frame(a,b,c) test <- function(i){ num <- list() num[1] <- colnames(df)[i] n
set.seed(1)
a <- rnorm(1:5,0,1)
b <- rnorm(1:5,0,1)
c <- rnorm(1:5,0,1)
df <- data.frame(a,b,c)
test <- function(i){
num <- list()
num[1] <- colnames(df)[i]
num[2] <- df
return(num)
}
test(1)
[[1]]
[1] "a"
[[2]]
[1] -0.6264538 0.1836433 -0.8356286 1.5952808 0.3295078
Warning message:
In num[2] <- df :
number of items to replace is not a multiple of replacement length
set.seed(1)
a是否只返回相应列的值
尝试:
test <- function(df, i){
list(name = colnames(df)[i], value = df[[i]])
}
test(df, 1)
#$name
#[1] "a"
#$value
#[1] -0.63 0.18 -0.84 1.60 0.33
测试您还需要索引num[2]确定!但是如果我想返回整个数据帧,你想返回整个数据帧作为向量还是数据帧?如果作为向量使用list(name=colnames(df)[i],value=unlist(df,use.names=FALSE))
或作为数据帧使用list(name=colnames(df)[i],value=df)
结果可能看起来很奇怪,但这只是我正在处理的另一个数据集的示例