【发布时间】:2021-11-06 02:41:28
【问题描述】:
我已经做了一段时间的工作,但仍然没有弄清楚如何让它以我喜欢的方式工作。希望有人可以帮助我:
我有一个包含大量关于城市预算的数据(5000+ obs)的数据框,因此,其中一个变量名称显然是“城市”。我有一个单独的 40 个城市列表,我想附加到这个数据框,并且基本上有条件地检查 df 中的每个城市名称,如果它也在单独的列表中(因此;将其编码为 1;否则为 0)。我在下面用较小的数据集做了一个例子:
city <- c(rep("city_a", 8), rep("city_b", 5), rep("city_c", 4), rep("city_d", 7),
rep("city_e", 3), rep("city_f", 9), rep("city_g", 4))
school <- c(1:8, 1:5, 1:4, 1:7,1:3, 1:9, 1:4)
df <- data.frame(city, school)
seperate_list <- tolower("City_A, City_B, City_E, City_G")
seperate_list <- gsub('[,]', '', seperate_list)
seperate_list <- strsplit(seperate_list, " ")[[1]]
注意:你可以问;为什么第二部分会这样?我的数据集要大得多,我想找到一种方法使该过程更加自动化,例如我不必手动删除所有逗号并将城市名称彼此分开。现在我有了df和seperate_list,我想将它们组合到df中,方法是添加第三列,指定每个城市是否(1)(0)在单独的列表中。我尝试过使用 for 循环和 lapply,但没有运气,因为我对这两个方面都不是很熟练。
我会很感激一个提示,所以我可以找到自己!
【问题讨论】:
-
预期结果是什么?
-
感谢您的评论!我描述了预期的结果而不是显示它,也许这有点不清楚。无论如何,@danlooo 提供的解决方案正是我想要的。
-
我不清楚“我想合并它们”是否意味着更多,而不仅仅是附加列。然而,当您接受@danloo 的回答时,您的意图就很明确了。
-
注意separate的拼写。
-
谢谢 G.,从这篇文章中的错别字数量来看,对我来说这是漫长的一天 :)