R 基于其他列创建列数据集
我有以下数据帧R 基于其他列创建列数据集,r,dataframe,R,Dataframe,我有以下数据帧 name surname Mr. William John Mellors Miss. Wendla Maria Heininen Mrs. Sandra Gonzalez 这取决于“name”列是否显示“Mrs”“Miss”“Ms”我必须为标题为“title”的新列指定一个或另一个值 例如,对于“女士”,是已婚男性,对于“小姐”是未结婚的女性,或者是“女士”是已婚女性 这是输出数据集 name
name surname
Mr. William John Mellors
Miss. Wendla Maria Heininen
Mrs. Sandra Gonzalez
这取决于“name”列是否显示“Mrs”“Miss”“Ms”我必须为标题为“title”的新列指定一个或另一个值
例如,对于“女士”,是已婚男性,对于“小姐”是未结婚的女性,或者是“女士”是已婚女性
这是输出数据集
name surname title
Mr. William John Mellors married men
Miss. Wendla Maria Heininen not married women
Mrs. Sandra Gonzalez married women
我不知道是否有一个函数来完成它,或者使用ifelse并将其分配到我的第一个数据帧
代码不工作
#dataframe loading
titanic <- read.table("C:/Users/sergio.urrea/Downloads/titanic.csv", header = TRUE, sep = ";")
titanic$title<-ifelse(titanic$name="Master","Hombre soltero",
ifelse(titanic$name="Miss","Mujer soltera"))
#数据帧加载
泰坦尼克号假设您的data.frame名为“df”
您也可以显式地引用第3列并保护这些“”
假设您的data.frame被称为“df”
您也可以显式地引用第3列并保护这些“”
从stringr
使用dplyr
和stru-detect()
:
library(dplyr)
library(stringr)
df = data.frame(name = c("Mr. William John", "Miss. Wendla Maria", "Mrs. Sandra"),
surname = c(" Mellors", "Heininen", "Gonzalez"))
df %>% mutate(title = ifelse(str_detect(name, "Mr."), "married men",
ifelse(str_detect(name, "Mrs."), "married woman", "not married woman")))
name surname title
1 Mr. William John Mellors married men
2 Miss. Wendla Maria Heininen not married woman
3 Mrs. Sandra Gonzalez married men
从stringr
使用dplyr
和stru-detect()
:
library(dplyr)
library(stringr)
df = data.frame(name = c("Mr. William John", "Miss. Wendla Maria", "Mrs. Sandra"),
surname = c(" Mellors", "Heininen", "Gonzalez"))
df %>% mutate(title = ifelse(str_detect(name, "Mr."), "married men",
ifelse(str_detect(name, "Mrs."), "married woman", "not married woman")))
name surname title
1 Mr. William John Mellors married men
2 Miss. Wendla Maria Heininen not married woman
3 Mrs. Sandra Gonzalez married men
使用ifelse方法:
df = data.frame(name = c("Mr. William John", "Miss. Wendla Maria", "Mrs. Sandra"),
surname = c(" Mellors", "Heininen", "Gonzalez"))
# Set default value for *title* column
df$title <- 'married man'
# If name starts with 'Miss', then it is not married woman
df$title <- ifelse(grepl('^Miss. ', df$name), 'not married woman', df$title)
# If name starts with 'Mrs', then it is married woman
df$title <- ifelse(grepl('^Mrs. ', df$name), 'married woman', df$title)
df=data.frame(name=c(“威廉·约翰先生”、“温德拉·玛丽亚小姐”、“桑德拉夫人”),
姓氏=c(“梅勒斯”、“海宁宁”、“冈萨雷斯”))
#设置*title*列的默认值
df$title使用ifelse方法:
df = data.frame(name = c("Mr. William John", "Miss. Wendla Maria", "Mrs. Sandra"),
surname = c(" Mellors", "Heininen", "Gonzalez"))
# Set default value for *title* column
df$title <- 'married man'
# If name starts with 'Miss', then it is not married woman
df$title <- ifelse(grepl('^Miss. ', df$name), 'not married woman', df$title)
# If name starts with 'Mrs', then it is married woman
df$title <- ifelse(grepl('^Mrs. ', df$name), 'married woman', df$title)
df=data.frame(name=c(“威廉·约翰先生”、“温德拉·玛丽亚小姐”、“桑德拉夫人”),
姓氏=c(“梅勒斯”、“海宁宁”、“冈萨雷斯”))
#设置*title*列的默认值
df$title您尝试过什么?因此,它不是一个代码编写服务。请阅读和阅读!无论如何,欢迎来到SO!使用“==”而不是“=”进行逻辑比较我已经尝试过了,这很难,我正在学习R和图,第一次尝试探索grep函数来检查名字中是否有mr或miss。你尝试过什么?因此,它不是一个代码编写服务。请阅读和阅读!无论如何,欢迎来到SO!使用“==”而不是“=”进行逻辑比较我已经尝试过了,这很难,我正在学习R和图,第一次尝试探索grep函数也很难检查名称中是否有mr或miss。