R语言 如何添加新列?

9rygscc1  于 2023-09-27  发布在  其他
关注(0)|答案(2)|浏览(88)

我知道如何添加列,但我不明白什么方向是问我,所以我会张贴在下面。
这个数据集叫做 * Example.Data *
我需要将具有这些规则的新列添加到我现有的数据集中

12 <= Educ < 16: “HighSchool”
16 <= Educ < 17: “College”
17 <= Educ < 19: “Masters”
Educ >= 19: “Doctorate”```

   Income   Career   Age   Sex  Married
1.   39540    Lawyer   20    F    N
2.   45098    Teacher  65    F    y
3.   54565    Doctor   45    M    y
4.   48356    Teacher  26    M    N
5.   68959    Nurse    32    F    y
6.   98459    Lawyer   34    F    Y
7.   34343    Nurse    49    M    N
qij5mzcb

qij5mzcb1#

我假设有一列名为“Educ”的数据你还没有包括(只使用前四行):
| 收入|职业生涯|年龄|性|结婚|Educ|
| --|--|--|--|--|--|
| 39540 |律师| 20 |F| N| 18 |
| 45098 |老师| 65 |F| Y| 15 |
| 54565 |医生| 45 |M| Y| 22 |
| 48356 |老师| 26 |M| N| 16 |
代码:

Example.Data$Degree = ""

Example.Data[Example.Data$Edu>=12 & Example.Data$Edu<16,"Degree"] = "HighSchool"

Example.Data[Example.Data$Edu>=16 & Example.Data$Edu<17,"Degree"] = "College"

Example.Data[Example.Data$Edu>=17& Example.Data$Edu<19,"Degree"] = "Masters"    

Example.Data[Example.Data$Edu>=19,"Degree"] = "Doctorate"

View(Example.Data)

导致:
| 收入|职业生涯|年龄|性|结婚|Educ|程度|
| --|--|--|--|--|--|--|
| 39540 |律师| 20 |F| N| 18 |大师|
| 45098 |老师| 65 |F| Y| 15 |高中|
| 54565 |医生| 45 |M| Y| 22 |博士学位|
| 48356 |老师| 26 |M| N| 16 |学院|
有更优雅的方法来做到这一点,但这是基本的R,非常清楚你在做什么!

kknvjkwl

kknvjkwl2#

你可以使用dplyr包和case_when函数

df <- df %>% mutate(Degree = 
                case_when(
                  Educ >= 12 & Educ < 16 ~ "HighSchool",
                  Educ >= 16 & Educ < 17 ~ "College",
                  Educ >= 17 & Educ < 19 ~ "Masters",
                  Educ >= 19 ~ "Doctorate",
                  TRUE ~ NA_character_
                ))

相关问题