r - R,数据框操作
问题描述
我在 R 中有以下数据框。
X1 <- c(451,2,6,2,7)
X2 <- c(0,1,6,3,4)
df <- data.frame(X1, X2)
我想添加两个额外的列(X3 和 X4),其中第一行是镜像的(X3=X2 和 X1=X4),从第二行开始,X3 等于前一行的 X4 加一,X4 等于X3(同一行)加上 X1(同一行)。
最终输出应如下所示
X1 <- c(451,2,6,2,7)
X2 <- c(0,1,6,3,4)
X3 <- c(0,452,455,462,465)
X4 <- c(451,454,461,464,472)
df <- data.frame(X1, X2, X3, X4)
您对如何在 R 中执行此操作有任何建议吗?
解决方案
你可以这样做:
a <- df$X1
a[1] <- a[1] - 1
b <- cumsum(a+1)
transform(df, X3 = c(X2[1], head(b+1, -1)), X4 = b)
X1 X2 X3 X4
1 451 0 0 451
2 2 1 452 454
3 6 6 455 461
4 2 3 462 464
5 7 4 465 472
推荐阅读
- bixby - 将 vivContext.userId 拉入 Action
- nservicebus - 是否有与 ASB 传输的 AutoRenewTimeout(TimeSpan) 等效的方法?
- java - Hibernate 不会在 Spring 隐式 @Transactional 注释方法提交上触发注册的 EventListeners
- nexus - helm 通过 CLI 托管 repo
- python - 带有数组/字典的 Python 代码没有达到我的预期
- scala - How to do ordering of a sealed trait?
- python - 如何使用python按两列分组,对它们求和并使用其中一列进行排序并获得pandas中每组最高的n
- reactjs - 如何将 li.menu 更改为不包含填充或更改背景颜色
- javascript - PHASER:在 create() 中加载和添加图像?
- sed - sed 多行替换单个数字