将 sapply 的输出存储到数据框中?
Store output of sapply into a data frame?
如何将 sapply()
的输出存储到数据帧中,其中索引值存储在第一列中,其值存储在相应的第二列中。为了便于说明,我在这里只显示了 2 个元素,但我的数据中有 110 列。 "loan" 是数据框。
cols <- sapply(loan,function(x) sum(is.na(x)))
cols
id
0
member_id
7
我希望输出为:
var value
id 0
member_id 7
我知道 sapply() returns 是一个向量,但是当我打印向量时,值会连同它的一些 "index" 一起打印,例如,如果应用于数据框,列名。所以,现在当我想将它存储为具有两列的数据框时,第一列包含索引部分,第二列包含值,我该怎么做?
我们可以使用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
我找到了问题的答案。对于那些真正理解我的问题的人来说,这个答案可能是有道理的:
cols <- data.frame(sapply(loan ,function(x) sum(is.na(x))))
cols <- cbind(variable = row.names(cols), cols)
我希望 row.names
位于与从 sapply
获得的值对应的同一数据框的列中。
如何将 sapply()
的输出存储到数据帧中,其中索引值存储在第一列中,其值存储在相应的第二列中。为了便于说明,我在这里只显示了 2 个元素,但我的数据中有 110 列。 "loan" 是数据框。
cols <- sapply(loan,function(x) sum(is.na(x)))
cols
id
0
member_id
7
我希望输出为:
var value
id 0
member_id 7
我知道 sapply() returns 是一个向量,但是当我打印向量时,值会连同它的一些 "index" 一起打印,例如,如果应用于数据框,列名。所以,现在当我想将它存储为具有两列的数据框时,第一列包含索引部分,第二列包含值,我该怎么做?
我们可以使用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
我找到了问题的答案。对于那些真正理解我的问题的人来说,这个答案可能是有道理的:
cols <- data.frame(sapply(loan ,function(x) sum(is.na(x))))
cols <- cbind(variable = row.names(cols), cols)
我希望 row.names
位于与从 sapply
获得的值对应的同一数据框的列中。