【发布时间】:2018-10-10 18:16:44
【问题描述】:
我很难在 R/dplyr 中使用 if_else 语句。我的目标是查看特定 Nexus 手机型号的列,并创建一个新列,如果找到关联值,则显示“android 手机”,或者引用同一行中的 device_type 列。我不断收到以下代码的错误条件错误。我怎样才能让它引用另一列?还想知道是否有办法使 if 条件更简洁。 newdevice 是我正在创建的列。谢谢!
#Correct Nexus issue
df$newdevice <- if_else(df$wurfl_model_name == "Nexus 5" | df$wurfl_model_name == "Nexus 7" | df$wurfl_model_name == "Nexus 6P" | df$wurfl_model_name == "Nexus 6" | df$wurfl_model_name == "Nexus 5X" | df$wurfl_model_name == "Nexus" | df$wurfl_model_name == "Nexus 4", "android phone", df$device_type)
【问题讨论】:
-
您遇到的错误是什么?为了简洁起见,您可以使用
grep来查找Nexus。类似grepl("Nexus", df$model_name)。 -
警告消息:未知或未初始化的列:'device_type'。回复:grep,问题是有一些 nexus 设备是平板电脑,所以我需要指定要更正的具体设备(因为另一列中的错误导致手机被贴错标签)
-
设备类型是否指定?您可以在
ifelse中执行grep和df$device_type != "tablet"。或者像下面建议的那样使用%in%。没有看到您的数据,很难判断。可以发minimal reproducible example吗?