gpt4 book ai didi

r - 如何在 r 中将整行向右移动然后删除第一列?

转载 作者:行者123 更新时间:2023-12-04 02:25:25 26 4
gpt4 key购买 nike

您好,我有一个表格数据,其中最后一行较早出现一个位置并生成一个新变量 X。我想将最后一行的元素向右移动一个位置,然后删除第一列(变量 X)。我的数据是这样的-

X <- c(NA, NA, NA, NA, NA, "F")
name <- c("A", "B", "C", "D", "E", 20 )
var2 <- c(55, 45, 67, 32, 99, 54 )
var3 <- c(70, 71, 40, 56, 43, 56 )
var4 <- c(72, 09, 42, 53, 66, 33 )
var5 <- c(60, 21, 82, 63, 44, NA )

dW_before <- data.frame(X, name, var2, var3, var4, var5)

我的预期结果是 -


name <- c("A", "B", "C", "D", "E", "F" )
var2 <- c(55, 45, 67, 32, 99, 20 )
var3 <- c(70, 71, 40, 56, 43, 54 )
var4 <- c(72, 09, 42, 53, 66, 56 )
var5 <- c(60, 21, 82, 63, 44, 33 )

dW_after <- data.frame( name, var2, var3, var4, var5)


因此,在最终结果中,我如何将最后一行右移到一列并删除变量 X,它对所有单元格变为 NA

谢谢!

最佳答案

为“X”列(即第一列)中的非 NA 元素创建索引。使用它来索引行的子集,同时将列索引指定为 -1(选择第一列以外的列)和 -ncol(选择第一列以外的列)最后)在分配列索引的rhs和lhs中

i1 <- !is.na(dW_before$X)
dW_before[i1, -1] <- dW_before[i1, -ncol(dW_before)]
out <- dW_before[-1]

-输出

out
name var2 var3 var4 var5
1 A 55 70 72 60
2 B 45 71 9 21
3 C 67 40 42 82
4 D 32 56 53 63
5 E 99 43 66 44
6 F 20 54 56 33

关于r - 如何在 r 中将整行向右移动然后删除第一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68041903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com