在R中获取每行的最后一个非零列名,并创建一个单独的列,可以通过以下步骤实现:
以下是一个示例代码:
# 创建一个示例数据框
data <- data.frame(
A = c(1, 2, 3, 4),
B = c(0, 0, 5, 6),
C = c(7, 8, 0, 0),
D = c(0, 0, 0, 9)
)
# 定义一个函数来获取每行的最后一个非零列名
getLastNonZeroCol <- function(row) {
last_nonzero_col <- tail(names(row)[row != 0], 1)
ifelse(is.na(last_nonzero_col), "", last_nonzero_col)
}
# 使用apply函数遍历每一行数据,并创建一个新的列
data$LastNonZeroCol <- apply(data, 1, getLastNonZeroCol)
# 打印结果
print(data)
这段代码将会输出以下结果:
A B C D LastNonZeroCol
1 1 0 7 0 C
2 2 0 8 0 C
3 3 5 0 0 B
4 4 6 0 9 D
在这个示例中,我们创建了一个包含四列的数据框。然后,我们使用apply函数遍历每一行数据,并使用getLastNonZeroCol函数获取每行的最后一个非零列名。最后,我们将这个新的列添加到原始数据框中。结果显示了每行的最后一个非零列名。
领取专属 10元无门槛券
手把手带您无忧上云