我是需要一些指导的初学者。
我有一个如下数据框(简化的示例,其中两列是从CSV导入的):
Price | Features
100 | {TV, wifi}
125 | {TV, wifi, "Air conditioning"}
110 | {wifi, "Wheelchair accessible", Sauna}
在此示例中,我要创建一个名为“ TV”的新列。如果将电视列为功能,则此列将指示TRUE;如果未列出电视,则此列将指示FALSE。
Price | Features | TV
100 | {TV, wifi} | TRUE
125 | {TV, wifi, "Air conditioning"} | TRUE
110 | {wifi, "Wheelchair accessible", Elevator} | FALSE
我已经搜索并找到了根据条件(if x = TRUE or x > 0)
来执行此操作的示例,但是当我查找变量中存在的字符/短语时,我不清楚如何执行操作。
答案 0 :(得分:0)
您可以尝试使用grepl
进行模式匹配:
tvs <- data.frame(
Price = c(100, 125, 110),
Features = c(
'{TV, wifi}',
'{TV, wifi, "Air conditioning"}',
'{wifi, "Wheelchair accessible", Sauna}'
),
stringsAsFactors = FALSE
)
tvs$TV <- grepl("TV", tvs$Features, fixed = TRUE)
所以现在tvs
是:
Price Features TV
1 100 {TV, wifi} TRUE
2 125 {TV, wifi, "Air conditioning"} TRUE
3 110 {wifi, "Wheelchair accessible", Sauna} FALSE