[英]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.