如何将sapply()
的输出存储到数据帧,其中索引值存储在第一列中,其值存储在相应的第二列中。为了说明,我在这里只显示了 2 个元素,但我的数据中有 110 列。"贷款"是数据框。
cols <- sapply(loan,function(x) sum(is.na(x)))
cols
id
0
member_id
7
我希望输出为:
var value
id 0
member_id 7
我知道 sapply(( 返回一个向量,但是当我打印向量时,值会与其一些"索引"一起打印,例如,如果应用于数据框,则列名。那么,现在当我想将其存储为具有两列的数据框时,其中第一列包含索引部分,第二列包含值,我该怎么做?
我找到了问题的答案。对于那些真正理解我的问题的人来说,这个答案可能是有意义的:
cols <- data.frame(sapply(loan ,function(x) sum(is.na(x))))
cols <- cbind(variable = row.names(cols), cols)
我希望row.names
位于与从sapply
获得的值相对应的同一数据框的列中。
我们可以使用stack
stack(mylist)[2:1]
数据
mylist <- list(df = 1, rf = 2)
这是你想要的吗?您的原始列表:
L <- c("df",1,"rf",2)
L
[1] "df" "1" "rf" "2"
作为数据框:
N <- length(L)
df <- data.frame( var = L[seq(1,N,2)], value = L[seq(2,N,2)] )
df
var value
1 df 1
2 rf 2