如何将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()会返回一个向量,但是当我打印向量时,会打印出值以及一些“索引”,例如列名,如果应用于数据帧。那么,现在当我想将它存储为具有两列的数据框时,其中第一列包含索引部分而第二列包含该值,我该怎么办呢?
答案 0 :(得分:1)
我找到了问题的答案。对于那些真正理解我的问题的人来说,这个答案可能有意义:
cols&lt; - data.frame(sapply(loan,function(x)sum(is.na(x))))
cols&lt; - cbind(variable = row.names(cols),cols)
我希望row.names位于与sapply获取的值相对应的同一数据帧的列中。
答案 1 :(得分:0)
我们可以使用stack
stack(mylist)[2:1]
mylist <- list(df = 1, rf = 2)
答案 2 :(得分:0)
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