在dataframe的表与列表和传染媒介传染媒介

问题描述 投票:1回答:1

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

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个回答
1
投票

我们可以通过repdf$c lengthe the df$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
© www.soinside.com 2019 - 2024. All rights reserved.