Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:将data.frame中的值折叠成与粘贴类似的向量(折叠=';,';)_R_Group By_Dplyr - Fatal编程技术网

R:将data.frame中的值折叠成与粘贴类似的向量(折叠=';,';)

R:将data.frame中的值折叠成与粘贴类似的向量(折叠=';,';),r,group-by,dplyr,R,Group By,Dplyr,考虑这样的代码和输出 mtcars %>% group_by(gear) %>% summarize(cyls=paste(unique(cyl),collapse=',')) # A tibble: 3 x 2 gear cyls <dbl> <chr> 1 3 6,8,4 2 4 6,4 3 5 4,8,6 “输出”应该是向量类型的列或类似的内容 gear cyls 3 c(6,8,4) 4 c(6,4

考虑这样的代码和输出

mtcars %>% group_by(gear) %>% summarize(cyls=paste(unique(cyl),collapse=','))

# A tibble: 3 x 2
   gear  cyls
  <dbl> <chr>
1     3 6,8,4
2     4   6,4
3     5 4,8,6
“输出”应该是向量类型的列或类似的内容

gear  cyls
3   c(6,8,4)
4   c(6,4)
5   c(4,8,6)

cyls
设置为如下列表列:

my_df <- mtcars %>% group_by(gear) %>% summarize(cyls=list(unique(cyl)))

my_df$cyls[[1]] # boom dbl vectors for each row stored as a list
[1] 6 8 4
my_df%group_by(gear)%%>%summary(cys=list(unique(cyl)))
my_df$cyls[[1]]#存储为列表的每行的boom dbl向量
[1] 6 8 4

使用基本R,我们可以:

(dat=aggregate(cyl~gear,mtcars,unique))
  gear     cyl
1    3 6, 8, 4
2    4    6, 4
3    5 4, 8, 6
在哪里

dat$cyl
$`1`
[1] 6 8 4

$`2`
[1] 6 4

$`3`
[1] 4 8 6

使用
dplyr
您必须将最终的TIBLE强制到数据帧中才能获得相同的结果

您是指向量类型还是TIBLE为1乘以3还是2?同样的事情,只是额外的强制,不是吗?可能会更友好地打印
mtcars%%>%groupby(gear)%%>%summary(cyls=list(unique(cyl)))%%>%as.data.frame()
。右键打印更友好。
dat$cyl
仍然是一个列表,与
dplyr
相同。这只是一个不同的打印显示添加到Nate的评论中,dplyr TIBLES也是数据帧。对要查看的结果执行
class
。虽然列表将不可见,但为True。它将隐藏在dblYou中,您可以使用
print.AsIs
而不是默认的
print
,这也是另一种方法。尽管为了使数据可视化,您必须时不时地打印。
dat$cyl
$`1`
[1] 6 8 4

$`2`
[1] 6 4

$`3`
[1] 4 8 6