gpt4 book ai didi

r - 将数据框的单列上移值

转载 作者:行者123 更新时间:2023-12-03 23:42:46 24 4
gpt4 key购买 nike

使用这样的示例数据:

example=data.frame(x=c(1,2,3,4,5,6,7,8), y=c(1,2,3,4,5,6,7,8), z=c(1,2,3,4,5,6,7,8))


看起来像这样:

    x   y   z
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8


我想将z列中的所有值向上移动两行,而数据框的其余部分保持不变。
结果应如下所示:

    x   y   z
1 1 1 3
2 2 2 4
3 3 3 5
4 4 4 6
5 5 5 7
6 6 6 8
7 7 7 NA
8 8 8 NA


我只找到了将列的值向下移动或整个数据框移动的方法。

有任何想法吗?
谢谢!

最佳答案

您的问题简化为:


将第一个n元素放入向量中
在末尾填充nNA


您可以使用一个简单的函数来做到这一点:

shift <- function(x, n){
c(x[-(seq(n))], rep(NA, n))
}

example$z <- shift(example$z, 2)


结果:

example
x y z
1 1 1 3
2 2 2 4
3 3 3 5
4 4 4 6
5 5 5 7
6 6 6 8
7 7 7 NA
8 8 8 NA

关于r - 将数据框的单列上移值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25995257/

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