R数据帧中的条件减法
Conditional subtraction in R data frame
我有一个相当直接的需求,但我找不到一个足够相似的以前问过的问题。我一直在尝试使用 dplyr,但无法弄清楚。
julian year
088 22
049 19
041 22
105 18
125 22
245 20
我想要的是对于 data$julian < 105 的每个值,从 data$year 中减去“1”,这样
julian year
088 21
049 18
041 21
105 18
125 22
245 20
OP 询问在 post 中使用 dplyr
。这是 dplyr
library(dplyr)
df1 <- df1 %>%
mutate(year = case_when(as.numeric(julian) < 105 ~ year -1,
TRUE ~ as.numeric(year)))
-输出
df1
julian year
1 088 21
2 049 18
3 041 21
4 105 18
5 125 22
6 245 20
数据
df1 <- structure(list(julian = c("088", "049", "041", "105", "125",
"245"), year = c(22L, 19L, 22L, 18L, 22L, 20L)), row.names = c(NA,
-6L), class = "data.frame")
另一个基数为 R 的选项:
df$year[df$julian < 105] <- df$year[df$julian < 105] - 1
输出
julian year
1 088 21
2 049 18
3 041 21
4 105 18
5 125 22
6 245 20
数据
df <- structure(list(name = c("KKSWAP", "KKSWAP"), code = c("The liquidations code for Marco are: 51-BMR05, 74-VAD08, 176-VNF09.",
"The liquidations code for Clara are: 88-BMR05, 90-VAD08, 152-VNF09."
)), class = "data.frame", row.names = c(NA, -2L))
我有一个相当直接的需求,但我找不到一个足够相似的以前问过的问题。我一直在尝试使用 dplyr,但无法弄清楚。
julian year
088 22
049 19
041 22
105 18
125 22
245 20
我想要的是对于 data$julian < 105 的每个值,从 data$year 中减去“1”,这样
julian year
088 21
049 18
041 21
105 18
125 22
245 20
OP 询问在 post 中使用 dplyr
。这是 dplyr
library(dplyr)
df1 <- df1 %>%
mutate(year = case_when(as.numeric(julian) < 105 ~ year -1,
TRUE ~ as.numeric(year)))
-输出
df1
julian year
1 088 21
2 049 18
3 041 21
4 105 18
5 125 22
6 245 20
数据
df1 <- structure(list(julian = c("088", "049", "041", "105", "125",
"245"), year = c(22L, 19L, 22L, 18L, 22L, 20L)), row.names = c(NA,
-6L), class = "data.frame")
另一个基数为 R 的选项:
df$year[df$julian < 105] <- df$year[df$julian < 105] - 1
输出
julian year
1 088 21
2 049 18
3 041 21
4 105 18
5 125 22
6 245 20
数据
df <- structure(list(name = c("KKSWAP", "KKSWAP"), code = c("The liquidations code for Marco are: 51-BMR05, 74-VAD08, 176-VNF09.",
"The liquidations code for Clara are: 88-BMR05, 90-VAD08, 152-VNF09."
)), class = "data.frame", row.names = c(NA, -2L))