gpt4 book ai didi

r - 根据现有的字符向量在 R 数据框中创建新的字符列

转载 作者:行者123 更新时间:2023-12-04 02:43:59 24 4
gpt4 key购买 nike

我是 R 的新手,被困在看似简单的任务中 - 在 R 数据框中以现有字符向量为条件创建新的列向量。

例如,我有一个数据框“class”,其中包含一个字符列(“Names”)和一个数字列(“Student_numbers”):

Names <- c("Sarah", "Mary", "Ben", "Will", "Alex") 
Student_numbers <- c(3,5,6,7,7)
class <- data.frame(Names, Student_numbers)

对于数据框“class”,我想添加一个名为“Gender”的新字符列,它基于字符向量“Names”中的值:

Male <- c("Ben", "Will", "Alex") 
Female <- c("Sarah", "Mary")

Names Student_numbers Gender
1 Sarah 3 Female
2 Mary 5 Female
3 Ben 6 Male
4 Will 7 Male
5 Alex 7 Male

我不想手动执行此操作,而是希望根据上面定义的字符向量自动执行此操作。

预先感谢您的帮助。

最佳答案

你可以在这里使用ifelse:

class$Gender <- ifelse(class$Names %in% Male, 
"Male",
ifelse(class$Names %in% Female, "Female", NA))
class
# Names Student_numbers Gender
# 1 Sarah 3 Female
# 2 Mary 5 Female
# 3 Ben 6 Male
# 4 Will 7 Male
# 5 Alex 7 Male

如果您有更多案例,您也可以使用 dplyr 中的 case_when:

library(dplyr)
case_when(class$Student_numbers < 4 ~ "Grp1",
class$Student_numbers < 6 ~ "Grp2",
class$Student_numbers < 7 ~ "Grp3",
TRUE ~ "Other")

关于r - 根据现有的字符向量在 R 数据框中创建新的字符列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com