我想知道如何从dataset的变量中创建另一个变量,从另一个变量中获取值。也就是说,我有一个可用的变量叫做“年龄”,它包含了人的年龄的积分值。因此,我想在这个数据集中创建一个名为“教育”的变量,这样,如果年龄小于7岁,教育就具有“初等教育”的价值。如果年龄在7至12岁之间,教育就具有“中等教育”的价值。知道我该怎么做吗?
我试过做下面这样的事情,但是我没有得到结果
if ((df$age) < 7){
df$education="primary education"
}发布于 2022-03-04 01:24:06
对于基R,可以将ifelse命令用于按元素划分的条件:
df$education <- ifelse(df$age < 7, "primary education", "secondary education")您可以嵌套ifelse语句以获得更多级别(虽然不是很优雅):
df$education <- ifelse(df$age < 7, "primary education",
ifelse(df$age >= 7 & df$age < 12, "secondary education"), "other")发布于 2022-03-03 22:44:00
下面是一个使用tidyverse的解决方案,并更详细地说明了dplyr包
library(dplyr)
# create example data by sampling random ages
df <- data.frame(age = sample(x = 5:21, size = 100, replace = TRUE))
# classify age into education col
df <- dplyr::mutate(df, education = dplyr::case_when(age < 7 ~ "primary education",
age >= 7 & age < 12 ~ "secondary education",
age >= 12 ~ "other"))https://stackoverflow.com/questions/71344544
复制相似问题