我正在努力想出一个正确的过程来转换我正在进行分析的一些数据而不需要使用脚本语言.
数据采用类似于以下的格式
data.frame(Group=LETTERS[1:3],Total=c(100,120,130),Modified=c(12,15,32))
Group Total Modified
1 A 100 12
2 B 120 15
3 C 130 32
Run Code Online (Sandbox Code Playgroud)
我希望结果数据框看起来像
+-------+----------+
| Group | Modified |
+-------+----------+
| A | Y |
| A | Y |
| A | Y |
| . | . |
| . | . |
| . | . |
| A | N |
| A | N |
| B | Y |
| B | Y |
| . | . |
| . | . |
| . | . |
| B | N |
+-------+----------+
Run Code Online (Sandbox Code Playgroud)
应该有12行,A组和Modified = Y,88行,A组和Modified = N.B,C等也是如此.
在大多数情况下,需要在每行上重复添加其他列以及组信息.
mne*_*nel 10
您可以使用rep适当的 times参数.
data.table编码优雅的解决方案
library(data.table)
# your data is in the data.frame DF
DF <- data.table(DF)
levels <- c('Y', 'N')
DF[,list(Modified = rep(levels,c(Modified,Total-Modified))),by = Group]
Run Code Online (Sandbox Code Playgroud)