通过使用另一个列值创建一个新列

德鲁

我有一个看起来像这样的数据集:

data <- data.frame(A = c(3.132324,12.3439085,3.34343,5.1239048,6.34323,3.342334,9.342343,134.132433,13.1234323,23.34323))

现在,我想使用A值创建一个新列B,该列基于A下方一行的值。像这样:

      A          B
1    3.132324  12.343908
2   12.343908   3.343430
3    3.343430   5.123905
4    5.123905   6.343230
5    6.343230   3.342334
6    3.342334   9.342343
7    9.342343 134.132433
8  134.132433  13.123432
9   13.123432  23.343230
10  23.343230         NA

我已经尝试使用类似这样的代码data$B <- c(tail(data$A, -1), NA)),但是我得到的小数位数不正确(例如,具有6个小数点的值将变为5个小数点)。我希望B值精确地跟随A值,其中包括小数点。

我该怎么做呢?

更新资料

这显示了我实际数据集中存在的问题,当我使用mutate()函数时,B会四舍五入,如下面的@akrun所示。

     A        B
1  7.933333 16.01667
2 16.016667 24.53333
3 24.533333 34.70000
4 34.700000       NA  
阿克伦

我们可以使用leadmutatedplyr

library(dplyr)
data %>% 
     mutate(B = lead(A))
#           A          B
#1    3.132324  12.343908
#2   12.343908   3.343430
#3    3.343430   5.123905
#4    5.123905   6.343230
#5    6.343230   3.342334
#6    3.342334   9.342343
#7    9.342343 134.132433
#8  134.132433  13.123432
#9   13.123432  23.343230
#10  23.343230         NA

根据OP的代码,让我们尝试 list

slotfinal <- list(data, data)
for(i in seq_along(slotfinal)) slotfinal[[i]] <- slotfinal[[i]] %>%
             mutate(B = lead(A))

slotfinal
#[[1]]
#            A          B
#1    3.132324  12.343908
#2   12.343908   3.343430
#3    3.343430   5.123905
#4    5.123905   6.343230
#5    6.343230   3.342334
#6    3.342334   9.342343
#7    9.342343 134.132433
#8  134.132433  13.123432
#9   13.123432  23.343230
#10  23.343230         NA

#[[2]]
#            A          B
#1    3.132324  12.343908
#2   12.343908   3.343430
#3    3.343430   5.123905
#4    5.123905   6.343230
#5    6.343230   3.342334
#6    3.342334   9.342343
#7    9.342343 134.132433
#8  134.132433  13.123432
#9   13.123432  23.343230
#10  23.343230         NA

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用在另一个DataFrame中找到的值创建一个新列

根据另一列和另一个表中的值创建一个新列

R:使用另一个数据框创建一个新列

如何通过使用其第一列作为新的第一行从另一个矩阵创建一个新矩阵?

如何使用一个列中的列名和另一个列中的列值重新创建新列

如何通过在pyspark中重复一个值“另一个列的大小”来创建数组列?

根据另一个数据框列的唯一值创建一个新的数据框

Python Pandas根据另一个列值创建新列

基于另一个列值创建新列

Pandas - 创建新列 - 如果另一个列值在列表中(正确方式)

通过评估另一个表达式来创建一个新列

SQL如何基于另一个列的值创建一个布尔列

Python通过匹配另一个数据帧来创建新列

根据另一个数据集的值和标题创建一个新列

如何使用 SQL 中另一个表中的一列创建一个新表?

通过使用基于另一个数据框的查找替换以逗号分隔的列的值来创建新列

使用另一列的最大值创建一个新列

数据框,使用基于另一列索引的值创建一个新列

Pyspark SQL:根据一个值是否存在于另一个DataFrame的列中创建一个新列

创建具有从另一个表索引的值的新列

根据与另一个数据框中的值匹配的行数创建新列

Python Pandas:根据另一个数据框的类别值创建新列

R根据另一个中的值创建并填充新列

通过列值从另一个创建数据框

如何通过另一个列上的值聚合一个列?

如何迭代另一列中的嵌套字段以根据另一个值创建新列?

通过从另一个数据框中选择在一个数据框中创建一个新列

如何使用另一个数组的行中的列创建一个新数组?[php]

根据对一个和另一个列的观察创建一个新数据集