r - 如何每 n 行转置一个长数据帧

标签 r tidyverse

我有一个这样的数据框:

x=data.frame(type = c('a','b','c','a','b','a','b','c'),
value=c(5,2,3,2,10,6,7,8))

每个item都有属性a,b,c,而有些记录可能会缺失记录,即只有a和b

期望的输出是

y=data.frame(item=c(1,2,3), a=c(5,2,6), b=c(2,10,7), c=c(3,NA,8))

如何将 x 转换为 y?谢谢

最佳答案

我们可以使用dcast

library(data.table)
out <- dcast(setDT(x),  rowid(type) ~ type, value.var = 'value')
setnames(out, 'type', 'item')
out
#   item a  b  c
#1:    1 5  2  3
#2:    2 2 10  8
#3:    3 6  7 NA

关于r - 如何每 n 行转置一个长数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52595575/

相关文章:

json - R:将特定行转换为列

r - 用于比较向量的用户定义的 R 函数

r - 如何使用 Bookdown 更改单个文档中的标题标签名称?

r - 多元回归模型过滤估计的点须图

r - 在 dplyr::mutate() 中编写一个带有默认列名输入的函数

r - R 中变量下一次出现的新列

r - 使用RVest(R)进行网页抓取时,URL停止使用

r - 在 R 中将大文件分区为小文件

r - 按 R 中的连续值对数据帧行进行分组

r - 如何将基本 r 中基于滞后的列转换转换为 dplyr 管道?