【发布时间】:2020-09-21 20:25:28
【问题描述】:
我真的不知道该怎么问,所以让我举个例子。
我有一个数据集,其中包含超过 5 万个条目,包括地址。像这样
streets <- c("st1","st2","st3","st4","st10000","st50000")
我需要将此街道名称与它们所属的城市相匹配。当它看到“st1”时,它应该添加 CityX。我没有数据集,所以我创建了一个这样的。
cities <- data.table(
city1 <- c("st1","st2","st3"),
city2 <- c("st4","st5","st6"),
city3 <- c("st50","st10000","st50000")
)
setnames(cities,"V1","NY")
setnames(cities,"V2","LA")
setnames(cities,"V3","DC")
现在我想匹配这个数据集,如果城市包含街道名称,它应该在“街道”中创建一个新列并在那里添加城市名称。应该是这样看的:
streets2 <- data.table(streets <- c("st1","st2","st3","st4","st10000","st50000"),
c("NY","NY","NY", "LA","DC","DC"))
我应该提一下,我不能使用 dpylr 只允许使用 data.table。我想我需要使用 for loop 和 lapply 但我知道如何。谢谢。
【问题讨论】:
-
你真的有这种形式的数据作为一个逗号分隔的字符串吗?
-
我有一个庞大的数据集,其中 1 列中有超过 55k 个条目...我一直在创建另一个数据集来对这些值进行分类。
-
您应该分享一个准确代表您的数据的示例,否则您将难以将答案应用于您的数据。请阅读有关how to ask a good question 的信息以及如何提供reproducible example。
-
好的,我现在就试试吧。
-
为什么要将输出作为逗号分隔的字符串?
标签: r for-loop data.table