Sta*_*tCC 5 merge transpose r transformation
嘿,所以我对R很新,只熟悉一些函数.我有大约2,000,000行的行数据.
原始数据是这样的,项目有四种关税(AHS,BND,MFN,PRF).有些数据有PRF,有些则没有.目标是按关税类型将每个项目的关税转换为一列.
AHS 3.00
BND 3.80
MFN 4.00
PRF 2.00
AHS 4.00
BND 3.80
MFN 4.00
Run Code Online (Sandbox Code Playgroud)
如何将原始数据转换为如下:
AHS BND MFN PRF
3.00 3.80 4.00 2.00
4.00 3.80 4.00 NA
Run Code Online (Sandbox Code Playgroud)
我试过rbind,因为那些没有PRF,R会将AHS分配给PRF.
谁能告诉我如何进行这种转变?非常感谢!
创建一个grp变量,第一组为 1,第二组为 2,依此类推。然后使用tapply
grp <- cumsum(DF$V1 == "AHS")
tapply(DF$V2, list(grp, DF$V1), sum)
Run Code Online (Sandbox Code Playgroud)
给予:
AHS BND MFN PRF
1 3 3.8 4 2
2 4 3.8 4 NA
Run Code Online (Sandbox Code Playgroud)
我们用这个作为数据:
DF <- data.frame(V1 = c("AHS", "BND", "MFN", "PRF", "AHS", "BND", "MFN"),
V2 = c(3, 3.8, 4, 2, 4, 3.8, 4), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)