RStudio使用mutate函数后新增变量未显示是什么原因
问题原因
你没有将mutate()处理后的结果赋值保存到数据集对象中。
dplyr 系列函数通过管道%>%做数据处理时,不会直接修改原始输入的数据集,所有转换操作生成的都是临时结果:运行代码时你只会在控制台看到处理后带season列的预览,但这个结果没有被写入环境里的变量,运行结束后临时结果就会被丢弃,所以你在原始数据里找不到新字段,导出的文件自然也不会包含这一列。
另外你调取变量时写的是alldata$,但你代码里传入管道的数据集名称是alldata_n,变量名拼写不一致也会导致你找不到对应字段。
修正方案
把管道处理后的结果用赋值符号<-存回数据集(如果不想覆盖原始数据,也可以赋值给一个全新的变量名),正确代码如下:
# 覆盖原始alldata_n数据集的写法 alldata_n <- alldata_n %>% mutate( season = case_when( month %in% 10:12 ~ "Fall", month %in% 1:3 ~ "Winter", month %in% 4:6 ~ "Spring", month %in% 7:9 ~ "Summer" ) )
运行完上述代码后,你再通过alldata_n$season调取字段、或者导出alldata_n为csv文件,就能正常看到season列了。
如果你不想改动原始的
alldata_n,可以把结果赋值给新变量,比如alldata_with_season <- alldata_n %>% mutate(...),后续操作使用新变量即可。
内容的提问来源于stack exchange,提问作者Hasan Sohail
相关产品推荐
相关产品推荐

