我有一个带有邻域的大数据集,但我只想要一些我有矢量字符的邻域。 我想过使用for循环对其进行子集化,请参阅下面的数据示例和代码示例。似乎我的for循环实际上是在所有邻域上循环 - 但是 - 在我的新数据集中只出现一个邻域,而不是所有邻域的子集。任何人都可以告诉我我在代码中做错了什么吗?
我受到了所有这些答案的启发: How to subset the dataframe byusing for loop and if condition in r
subset data frame in R using loop
R: loop through data frame extracting subset of data depending on date
最佳。谢谢。
示例数据
大数据集:
> head(CBS, n=5)
# A tibble: 5 x 37
`Wijken en buurten` `Aantal inwoners` `||Mannen` `||Vrouwen`
<chr> <dbl> <dbl> <dbl>
1 Alkmaar 108373 53659 54714
2 Zuid 14315 6785 7525
3 Kooimeer 2040 930 1105
4 Dillenburg en Stadhouderskwartier 1310 605 700
5 Staatsliedenkwartier en Landstraten 2130 1015 1110
但我只需要来自这些社区的信息:
> head(buurten_2, n=5)
buurten_2
[1,] "Oud-Overdie"
[2,] "Overdie-West"
[3,] "Overdie-Oost"
[4,] "Oosterhout"
[5,] "De Hoef III en IV"
这些对应于&#39; Wijken en Buurten&#39;中的变量名称。 CBS专栏。
这些是我尝试过的循环:(有些我知道它不会起作用,但我很绝望......)
for (i in 1:nrow(buurten_2)){
if (CBS$`Wijken en buurten`[i] == buurten_2[i])
data <- append(data, CBS[i,])
print(buurten_2[i])
}
for (i in 1:length(buurten_2)){
temp <- CBS[CBS$`Wijken en buurten`==buurten_2[i],]
print(buurten_2[i])
}
for (i in 1:length(buurten_2)){
data <- subset(CBS, CBS$`Wijken en buurten` == buurten_2[i])
print(buurten_2[i])
}
for (buurten in 1:nrow(buurten_2)){
CBS %>%
filter(CBS$`Wijken en buurten`[i] == buurten_2[buurten])
}
修改
但这给了我
# A tibble: 1 x 37
`Wijken en buurten` `Aantal inwoners` `||Mannen` `||Vrouwen` `|||Ongehuwd` `||Gehuwd`
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Oudorp-Centrum 1930 935 995 730 940
答案 0 :(得分:0)
不!
这不是它在R.中的工作方式;)你想使用矢量化代码,因为它更简洁,更快(在R中)。这有两个解决方案:
RTRIM(LTRIM(DOCTEXT))