【发布时间】:2020-11-02 07:57:00
【问题描述】:
我有一个这样的 df:
x <- data.frame("Year" = c(1945,1945,1946,1946,1947,1947), "Age" = c(1,2,1,2,1,2), "Value" = c(4,5,4,5,4,6))
我想根据一些条件添加新行: 例如,我想添加与第一行具有相同“YEAR”和“AGE”的第二行,但 Value 是第一行的值 minis 1。
我想要这样的结果:
x <- data.frame("Year" = c(1945, 1945,1945,1945,1946,1946,1946,1946,1947,1947,1947,1947), "Age" = c(1,1,2,2,1,1,2,2,1,1,2,2), "Value" = c(4,3,5,4,4,3,5,4,4,3,5,4))
感谢您帮助初学者。
【问题讨论】:
-
我不太了解您的情况-您能澄清一下吗?例如,为什么
5在您想要的输出中的第 3 行? -
你可以试试这个:
value <- data.frame(x$Year, x$Value-1, x$Age)然后colnames(value) <- c("Year", "Value", "Age")最后p <- full_join(x, value, by = c("Year", "Value", "Age"))。value使用您想要的值创建一个数据框。colnames更改列名以匹配原始名称。full_join按列名合并两个数据框。