R 将列转换为数据帧列表并维护名称

R 将列转换为数据帧列表并维护名称,r,list,R,List,我有大量的df列名,其中包含对调查问题的回答数据,我能够做到以下几点: 将每列转换为数据帧并存储在列表x 创建包含每个数据帧的表的单独列表y Dput: df关于OP是否需要每个列的data.frames/tbl_df的列表,或者仅仅是表的输出,目前还不太清楚。对于第一种情况,我们可以使用split.default lst1 <- split.default(df, seq_along(df)) 如果我们需要表 lapply(df, table) #$`A question` #1

我有大量的
df
列名,其中包含对调查问题的回答数据,我能够做到以下几点:

  • 将每列转换为数据帧并存储在列表
    x
  • 创建包含每个数据帧的表的单独列表
    y
  • Dput:


    df关于OP是否需要每个列的data.frames/tbl_df的
    列表,或者仅仅是
    表的输出,目前还不太清楚。对于第一种情况,我们可以使用
    split.default

    lst1 <- split.default(df, seq_along(df))
    

    如果我们需要

    lapply(df, table)
    #$`A question`
    
    #1 3 4 
    #1 3 2 
    
    #$`Some other question`
    
    #0 1 3 4 
    #1 1 2 2 
    
    #$`Other kind of question`
    
    #1 3 4 5 
    #1 1 3 1 
    
    或者,如果需要将其转换为
    data.frame
    ,请使用
    as.data.frame

    lapply(df, function(x) as.data.frame(table(x)))
    

    谢谢我不熟悉列表,觉得这是一个非常简单的问题,但在任何地方都找不到类似的问题。@Matt没问题。我想您只需要
    lappy(df,table)
    。当我们在整个data.frame上循环时,每一列都是一个单元,当使用
    lappy(df,table)
    时,它以
    向量的形式在列的值上循环,我怎样才能使类保持
    data.frame
    ?@Matt你需要
    lappy(df,function(x)as.data.frame(table(x))
    完美。再次感谢。
    lapply(names(df), function(nm) df[nm])
    
    lapply(df, table)
    #$`A question`
    
    #1 3 4 
    #1 3 2 
    
    #$`Some other question`
    
    #0 1 3 4 
    #1 1 2 2 
    
    #$`Other kind of question`
    
    #1 3 4 5 
    #1 1 3 1 
    
    lapply(df, function(x) as.data.frame(table(x)))