R语言新手求助:创建筛选年龄≥25客户的Call数据框方法
R语言筛选年龄≥25的客户数据框
基础R方法
直接用数据框索引筛选符合条件的行就行,不用if/else。假设你的原始数据框叫customer_data(记得替换成你实际的变量名),代码如下:
# 创建仅包含年龄≥25客户的新数据框Call Call <- customer_data[customer_data$Age >= 25, ]
- 逗号前的
customer_data$Age >= 25会判断每行是否满足年龄条件,返回布尔值(TRUE/FALSE),R会自动保留值为TRUE的行 - 逗号后留空表示保留所有列,要是只想选特定列,可以列出来,比如
customer_data[customer_data$Age >= 25, c("ID", "Gender", "Age")]
tidyverse的dplyr方法(更直观)
如果你习惯用tidyverse系列工具,filter()函数的写法更简洁:
# 第一次用需要先安装dplyr install.packages("dplyr") library(dplyr) # 筛选年龄≥25的行 Call <- customer_data %>% filter(Age >= 25)
%>%是管道符,作用是把前面的customer_data传给后面的filter()函数,filter()直接按条件筛选行,新手更容易理解。
为什么if/else不行?
你之前用if/else得到标记列,是因为if/else是对单个值做判断,逐行返回TRUE/FALSE,最终生成的是和原数据框行数一致的新列,而不是筛选出符合条件的行。筛选行需要的是基于布尔值向量选择行索引,上面两种方法都是干这个的。
内容的提问来源于stack exchange,提问作者J4641
相关产品推荐
相关产品推荐

