![](/img/trans.png)
[英]In R for a table, how to create new rows by substracting one row from another for each subject
[英]R Adding one new row for each subject
我想為數據框中的每個主題添加一個新行,如下所示:
Subject = c("1","5","10")
time = c("2", "2.25", "2.5")
value = c("3", "17", "9")
DF <- data.frame(Subject, time, value)
Subject time value
1 1 2 3
2 5 2.25 17
3 10 2.5 9
我想為每個主題添加一個新行,其中時間= 0,值= 0,給出以下內容:
Subject = c("1","1","5","5","10","10")
time = c("0","2","0", "2.25","0", "2.5")
value = c("0","3","0", "17","0", "9")
DF2 <- data.frame(Subject, time, value)
Subject time value
1 1 0 0
2 1 2 3
3 5 0 0
4 5 2.25 17
5 10 0 0
6 10 2.5 9
我有很多科目,科目編號上有很多空白,並且希望以合理的方式為所有這些科目設置。 有什么建議么?
先感謝您。
順祝商祺
k
我只想rbind
在新的值(不知道為什么你指定的所有值作為字符值,在這里我把它們改成數字)
DF <- data.frame(
Subject = c(1,5,10),
time = c(2, 2.25, 2.5),
value = c(3, 17, 9)
)
DF2 <- rbind(
DF,
data.frame(Subject = unique(DF$Subject), time="0", value="0")
)
這使它們位於底部,但是您可以像這樣重新排序
DF2[order(DF2$subject, DF2$time), ]
您也可以從“ gdata”包中使用interleave
:
library(gdata)
interleave(DF, data.frame(Subject = 0, time = 0, value = 0))
# Subject time value
# 1 1 2.00 3
# 11 0 0.00 0
# 2 5 2.25 17
# 1.1 0 0.00 0
# 3 10 2.50 9
# 1.2 0 0.00 0
這使用@MrFlick的樣本數據。
DF <- data.frame(
Subject = c(1,5,10),
time = c(2, 2.25, 2.5),
value = c(3, 17, 9)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.