r语言 - 将 sapply 的输出存储到数据框中



如何将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

最新更新