繁体   English   中英

通过搜索字符串遍历特定列的行

[英]Looping through rows of a particular column by searching for a string

我从txt文件导入了一些数据:

df <- read.table(file.choose(), 
                               sep = "\t",
                               skip = 2,
                               fill = T)
df <- cdf[,c(6,11)]
colnames(df) <- c("area", "population")

在RStudio环境中,我的数据的简化版本看起来像这样

     area                                      population
[1]  area0                                     0
[2]  area1:                                    59,859
[3]  area0:                                    56000
[4]  area0:                                    25
[5]  area0:                                    Unknown
[6]  area0:                                    1,400

这在data.frame类中,我想遍历state以查找是否包含短语area0 如果是的话,我想去population在同一行,并通过累积和增加人口了。 我的最终结果应该是这样的:新data.frame中的area0 area0 57425

正如Ronak Shah在评论中所述,可以使用sum(as.numeric(as.character(df$population‌​[grepl("area0"‌‌​​, df$state])), na.rm = T)解决此问题sum(as.numeric(as.character(df$population‌​[grepl("area0"‌‌​​, df$state])), na.rm = T)

这避免了需要for循环。

应该执行的第二件事是消除“ population列中的逗号,以便可以正确计算总和。 这可以使用gsub完成:

df$population <- gsub(",", "", df$population)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM