在R中,如何用男性和女性替换1和0?

在R中,如何用男性和女性替换1和0?,r,R,我有一个csv文件包含一个性别属性,1=男性,0=女性。 在使用R读取数据集后,我想将该值从1替换为男性,从0替换为女性。 我试过这个代码,但不起作用 df <- read.csv('heart.csv') df[df$sex == 1] <- "male" df[df$sex == 0] <- "female" df请尝试从dplyr包和ifelse library(tidyverse) df <- tibble(x = sa

我有一个csv文件包含一个性别属性,1=男性,0=女性。 在使用R读取数据集后,我想将该值从1替换为男性,从0替换为女性。 我试过这个代码,但不起作用

df <- read.csv('heart.csv')
df[df$sex == 1] <- "male"
df[df$sex == 0] <- "female"

df请尝试从
dplyr
包和
ifelse

library(tidyverse)

df <- tibble(x = sample(0:1, 10, replace = TRUE))

> df
# A tibble: 10 x 1
       x
   <int>
 1     0
 2     1
 3     0
 4     1
 5     1
 6     1
 7     1
 8     0
 9     0
10     1

df <-df %>%
  mutate(y = ifelse(x == 0, "male", "female"))

> df
# A tibble: 10 x 2
       x y     
   <int> <chr> 
 1     0 male  
 2     1 female
 3     0 male  
 4     1 female
 5     1 female
 6     1 female
 7     1 female
 8     0 male  
 9     0 male  
10     1 female
库(tidyverse)
df-df
#一个tibble:10x1
x
1     0
2     1
3     0
4     1
5     1
6     1
7     1
8     0
9     0
10     1
df%
突变(y=ifelse(x==0,“雄性”,“雌性”))
>df
#一个tibble:10x2
xy
10男
21名女性
30男
41名女性
51名女性
61名女性
71名女性
80男
90男
101名女性

请尝试从
dplyr
包和
ifelse

library(tidyverse)

df <- tibble(x = sample(0:1, 10, replace = TRUE))

> df
# A tibble: 10 x 1
       x
   <int>
 1     0
 2     1
 3     0
 4     1
 5     1
 6     1
 7     1
 8     0
 9     0
10     1

df <-df %>%
  mutate(y = ifelse(x == 0, "male", "female"))

> df
# A tibble: 10 x 2
       x y     
   <int> <chr> 
 1     0 male  
 2     1 female
 3     0 male  
 4     1 female
 5     1 female
 6     1 female
 7     1 female
 8     0 male  
 9     0 male  
10     1 female
库(tidyverse)
df-df
#一个tibble:10x1
x
1     0
2     1
3     0
4     1
5     1
6     1
7     1
8     0
9     0
10     1
df%
突变(y=ifelse(x==0,“雄性”,“雌性”))
>df
#一个tibble:10x2
xy
10男
21名女性
30男
41名女性
51名女性
61名女性
71名女性
80男
90男
101名女性

您的索引无法工作,因为您试图替换整个数据帧。也就是说,
df[df$sex==1]
导致了一个问题,因为R不知道要替换哪些元素。您可以执行以下操作:

df$sex[df$sex == 0] <- "female"
df$sex[df$sex == 1] <- "male"


df$sex[df$sex==0]您的索引无法工作,因为您试图替换整个数据帧。也就是说,
df[df$sex==1]
导致了一个问题,因为R不知道要替换哪些元素。您可以执行以下操作:

df$sex[df$sex == 0] <- "female"
df$sex[df$sex == 1] <- "male"

df$sex[df$sex==0]

 df <- data.frame(sex = sample(0:1, 10, replace = TRUE))
 df$sex <- c('female', 'male')[df$sex + 1]
df你可以

 df <- data.frame(sex = sample(0:1, 10, replace = TRUE))
 df$sex <- c('female', 'male')[df$sex + 1]

df
c(‘女性’、‘男性’)[df$sex+1]
c(‘女性’、‘男性’)[df$sex+1]
您必须颠倒标签或级别的顺序,注意女性=0,而男性=1您必须颠倒标签或级别的顺序,注意女性=0,而男性=1