【问题标题】:Table in dataframe with vector of lists and vector具有列表向量和向量的数据框中的表
【发布时间】:2018-03-28 01:24:27
【问题描述】:

我正在尝试创建类似于以下示例的一些数据图:

set.seed(1)
c <- rnorm(3)
df <- as.data.frame(c)
df$a <- strsplit(as.character(c), "1")

这给出了以下内容:

> table(unlist(df$a))

-0.6264538     -0.8356286             0.           0047        0742332             24 83643324222082 
         1              1              1              1              1              1              1 

我需要的是能够创建一个 2D 映射,类似于我认为使用 table(unlist(df$a), c) 创建的东西,但是该命令给出了错误:

表错误(unlist(df$a), c) : 所有参数的长度必须相同

输出应该类似于(手工创建):

                            c
c                    -0.8356286   2410047 -0.6264538 0742332   0.  83643324222082
  -0.835628612410047          1         1          0       0    0      0
  -0.626453810742332          0         0          1       1    0      0
  0.183643324222082           0         0          0       0    1      1

【问题讨论】:

    标签: r list dataframe


    【解决方案1】:

    我们可以rep吃掉lengthdf$cdf$a然后使用table

    table(rep(df$c, lengths(df$a)), unlist(df$a))
    
    
    #                   -0.6264538 -0.8356286 0. 0047 0742332 24 83643324222082
    #-0.835628612410047          0          1  0    1       0  1              0
    #-0.626453810742332          1          0  0    0       1  0              0
    #0.183643324222082           0          0  1    0       0  0              1
    

    在哪里

    lengths(df$a) #gives
    #[1] 2 2 3
    

    然后

    rep(df$c, lengths(df$a)) #gives
    
    #[1] -0.6264538 -0.6264538  0.1836433  0.1836433 -0.8356286 -0.8356286
    #[7] -0.8356286
    

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2017-07-11
      • 2022-08-03
      • 1970-01-01
      • 2021-01-20
      • 2014-07-10
      相关资源
      最近更新 更多