【发布时间】:2020-11-11 15:10:23
【问题描述】:
我有以下数据框:
xR <- data.frame("A" = c(15, 13.5, 12, 9.1, NA, NA, NA, NA),
"B" = c(NA, 13.6, 8.4, 6.7, 5.6, 2.0, NA, NA),
"C" = c(NA, NA, 8.5, 2.43, 1.23, NA, NA, NA))
如何将 B 列和 C 列中的行向上移动 1 行以获得:
xR1 <- data.frame("A" = c(15, 13.5, 12, 9.1, NA, NA, NA, NA),
"B" = c(13.6, 8.4, 6.7, 5.6, 2.0, NA, NA, NA),
"C" = c(NA, 8.5, 2.43, 1.23, NA, NA, NA, NA))
我的数据框有 100 多列,因此尝试将其自动化。 感谢您的帮助
【问题讨论】:
-
写一个函数来处理
shift_1 <- function(x) c(x[-1], x[1])的移动并将它应用到你的数据xR[, cols] <- lapply(xR[, cols], shift_1),其中cols是一个列名的字符向量,即cols <- c("B", "C")
标签: r dataframe row multiple-columns shift