【发布时间】:2022-01-12 04:10:49
【问题描述】:
我有一个包含四列的数据框。我想创建一个新列,其中值取决于上面的另一列行。例如,我有一个这样的数据集:
| Day | Precipitation | Condition |
|---|---|---|
| 1 | 3 | Wet |
| 2 | 0 | Dry |
| 3 | 3 | Wet |
我希望最终产品看起来像这样?
| Day | Precipitation | Condition | Day Before |
|---|---|---|---|
| 1 | 3 | Wet | |
| 2 | 0 | Dry | Wet |
| 3 | 3 | Wet | Dry |
关于如何做到这一点的任何想法?
【问题讨论】:
我有一个包含四列的数据框。我想创建一个新列,其中值取决于上面的另一列行。例如,我有一个这样的数据集:
| Day | Precipitation | Condition |
|---|---|---|
| 1 | 3 | Wet |
| 2 | 0 | Dry |
| 3 | 3 | Wet |
我希望最终产品看起来像这样?
| Day | Precipitation | Condition | Day Before |
|---|---|---|---|
| 1 | 3 | Wet | |
| 2 | 0 | Dry | Wet |
| 3 | 3 | Wet | Dry |
关于如何做到这一点的任何想法?
【问题讨论】:
你可以试试
library(dplyr)
df %>%
mutate('Day Before' = lag(Condition))
Day Precipitation Condition Day Before
1 1 3 Wet <NA>
2 2 2 Dry Wet
3 3 3 Wet Dry
【讨论】:
普通 R 方法:
要定义 Day Before 列,请将 NA 添加到 Condition 列 (df$Condition) 的开头,并删除该向量中的最后一个元素 (df$condition[-length(df$condition))。
df$DayBefore <- c(NA,df$Condition[-length(df$Condition)])
df
Day Percepitation Condition DayBefore
1 1 3 wet <NA>
2 2 0 dry wet
3 3 3 wet dry
【讨论】: