Store output of sapply into a data frame?

删除回忆录丶 提交于 2019-12-25 18:28:28

问题


how can I store the output of sapply() to a dataframe where the index value is stored in first column and its value in corresponding 2nd column. For illustration, I have shown only 2 elements here, but there are 110 columns in my data. "loan" is the data frame.

cols <- sapply(loan,function(x) sum(is.na(x)))                                                          
cols                                                                          
id                                                                               
0                                                                              
member_id                                                                             
7

I want output as:

var         value                             
id            0                                  
member_id     7   

I know that sapply() returns a vector, but when I print the vector, values are printed along with its some "index" e.g., column name if applied on a data frame. So, now when I want to store it as a data frame with two columns where 1st column contains the index part and the second column contains the value, how can I do it?


回答1:


I found an answer to my question. For those who actually did understand my problem, this answer might make sense:

cols <- data.frame(sapply(loan ,function(x) sum(is.na(x))))                     

cols <- cbind(variable = row.names(cols), cols)

I wanted the row.names to be in a column of the same data frame corresponding to the values obtained from sapply.




回答2:


We can use stack

stack(mylist)[2:1]

data

mylist <- list(df = 1, rf = 2)



回答3:


Is this what you want? Your original list:

L <- c("df",1,"rf",2)
L

[1] "df" "1"  "rf" "2"

As a data frame:

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


来源:https://stackoverflow.com/questions/44485428/store-output-of-sapply-into-a-data-frame

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!