R 在特定条件下编辑数据帧

R 在特定条件下编辑数据帧,r,dataframe,if-statement,R,Dataframe,If Statement,我有一个数据帧,希望根据一个简单的规则删除一些特定的情况:如果x等于2,y应该是NA 以下是一个例子: x <- c(1, 2, 1, 2, 1, 2, 1, 2) y <- c(5, 5, NA, NA, 6, 6, 4, 4) df <- data.frame(x, y) df x y 1 1 5 2 2 5 3 1 NA 4 2 NA 5 1 6 6 2 6 7 1 4 8 2 4 有没有办法用ifelse解决这个问题?我非常感谢您的帮助。您可以做

我有一个数据帧,希望根据一个简单的规则删除一些特定的情况:如果
x
等于2,
y
应该是
NA

以下是一个例子:

x <- c(1, 2, 1, 2, 1, 2, 1, 2)
y <- c(5, 5, NA, NA, 6, 6, 4, 4)

df <- data.frame(x, y)
df

  x  y
1 1  5
2 2  5
3 1 NA
4 2 NA
5 1  6
6 2  6
7 1  4
8 2  4
有没有办法用
ifelse
解决这个问题?我非常感谢您的帮助。

您可以做到

df$y[df$x == 2] <- NA
df

#  x  y
#1 1  5
#2 2 NA
#3 1 NA
#4 2 NA
#5 1  6
#6 2 NA
#7 1  4
#8 2 NA
dplyr
mutate

library(dplyr)
df %>%
  mutate(y = replace(y, x==2, NA))

ifelse
版本

df$y <- ifelse(df$x == 2, NA, df$y)

df %>%
   mutate(y = ifelse(x == 2, NA, y))
df$y%
突变(y=ifelse(x=2,NA,y))
你可以这样做

df$y[df$x == 2] <- NA
df

#  x  y
#1 1  5
#2 2 NA
#3 1 NA
#4 2 NA
#5 1  6
#6 2 NA
#7 1  4
#8 2 NA
dplyr
mutate

library(dplyr)
df %>%
  mutate(y = replace(y, x==2, NA))

ifelse
版本

df$y <- ifelse(df$x == 2, NA, df$y)

df %>%
   mutate(y = ifelse(x == 2, NA, y))
df$y%
突变(y=ifelse(x=2,NA,y))

那就可以了,太好了!但我想问:你能不能和ifelse一起找出一个可能性?我知道,我的问题不是很清楚,很抱歉这样就可以了,太好了!但我想问:你能不能和ifelse一起找出一个可能性?我知道,我的问题不是很清楚,很抱歉