R 将某些列中的所有值偏移一个单位
R offset all the values in certain columns by one unit
下面是我的数据集。我正在尝试将 Col1, Col2, Col3, Col4
中的所有值偏移 1
ID Col1 Col2 Col3 Col4
314 3 4 4 3
820 1 3 1 2
223 1 1 3 1
915 1 3 4 4
542 1 2 3 4
521 4 1 3 4
978 4 2 4 2
260 3 3 1 2
892 1 4 1 2
最终数据集应如下所示
ID Col1 Col2 Col3 Col4
314 2 3 3 2
820 0 2 0 1
223 0 0 2 0
915 0 2 3 3
542 0 1 2 3
521 3 0 2 3
978 3 1 3 1
260 2 2 0 1
892 0 3 0 1
我知道有几种方法可以做到这一点,但我担心它们可能不会给我准确的结果。非常感谢对此的任何建议。提前致谢。
算术运算被向量化。我们可以直接从数字列中减去1并赋值回来
df1[-1] <- df1[-1] - 1
-输出
> df1
ID Col1 Col2 Col3 Col4
1 314 2 3 3 2
2 820 0 2 0 1
3 223 0 0 2 0
4 915 0 2 3 3
5 542 0 1 2 3
6 521 3 0 2 3
7 978 3 1 3 1
8 260 2 2 0 1
9 892 0 3 0 1
数据
df1 <- structure(list(ID = c(314L, 820L, 223L, 915L, 542L, 521L, 978L,
260L, 892L), Col1 = c(3L, 1L, 1L, 1L, 1L, 4L, 4L, 3L, 1L), Col2 = c(4L,
3L, 1L, 3L, 2L, 1L, 2L, 3L, 4L), Col3 = c(4L, 1L, 3L, 4L, 3L,
3L, 4L, 1L, 1L), Col4 = c(3L, 2L, 1L, 4L, 4L, 4L, 2L, 2L, 2L)),
class = "data.frame", row.names = c(NA,
-9L))
下面是我的数据集。我正在尝试将 Col1, Col2, Col3, Col4
中的所有值偏移 1
ID Col1 Col2 Col3 Col4
314 3 4 4 3
820 1 3 1 2
223 1 1 3 1
915 1 3 4 4
542 1 2 3 4
521 4 1 3 4
978 4 2 4 2
260 3 3 1 2
892 1 4 1 2
最终数据集应如下所示
ID Col1 Col2 Col3 Col4
314 2 3 3 2
820 0 2 0 1
223 0 0 2 0
915 0 2 3 3
542 0 1 2 3
521 3 0 2 3
978 3 1 3 1
260 2 2 0 1
892 0 3 0 1
我知道有几种方法可以做到这一点,但我担心它们可能不会给我准确的结果。非常感谢对此的任何建议。提前致谢。
算术运算被向量化。我们可以直接从数字列中减去1并赋值回来
df1[-1] <- df1[-1] - 1
-输出
> df1
ID Col1 Col2 Col3 Col4
1 314 2 3 3 2
2 820 0 2 0 1
3 223 0 0 2 0
4 915 0 2 3 3
5 542 0 1 2 3
6 521 3 0 2 3
7 978 3 1 3 1
8 260 2 2 0 1
9 892 0 3 0 1
数据
df1 <- structure(list(ID = c(314L, 820L, 223L, 915L, 542L, 521L, 978L,
260L, 892L), Col1 = c(3L, 1L, 1L, 1L, 1L, 4L, 4L, 3L, 1L), Col2 = c(4L,
3L, 1L, 3L, 2L, 1L, 2L, 3L, 4L), Col3 = c(4L, 1L, 3L, 4L, 3L,
3L, 4L, 1L, 1L), Col4 = c(3L, 2L, 1L, 4L, 4L, 4L, 2L, 2L, 2L)),
class = "data.frame", row.names = c(NA,
-9L))