簡體   English   中英

R為每個主題添加一個新行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM