这是代码
`
区域< - " ARLINGTON"
数据< -read.csv(" city_markets.csv&#34)
for(i in 1:length(data [[1]])){
如果(grep的(区域,as.character(数据[[3]] [I]),ignore.case = TRUE)== 1){
for(j in 1:length(data)){ write(data[[j]][i],"analyzed.txt",append=TRUE) } }
} `
现在我在这里尝试做的是访问csv的第3列(第3列)并将其与指定的区域进行比较!我一直收到错误
if(grep(region,as.character(data [[3]] [i]),ignore.case = TRUE)==:
出错参数长度为零
答案 0 :(得分:3)
详细说明我的评论和@Adii_:
当你使用grep
时,结果是满足条件的元素的“位置”......如果没有匹配则为“无”(因此错误信息)。
使用grepl
,您将获得TRUE或FALSE,您可以在if
声明中使用。
对于length(grep(...))
,如果没有匹配,则结果为0
,对应FALSE
语句的if
或正整数({{1}在你的情况下,因为你只测试一个元素),如果有匹配,则对应1
语句的TRUE
。
答案 1 :(得分:0)
这解决了我的问题:
region<-"ARLINGTON"
data<-read.csv("city_markets.csv")
for(i in 1:length(data[[1]])){
a<-as.character(data[[3]][i])
if(grepl(region,a,ignore.case=TRUE)){
for(j in 1:length(data)){
write(data[[j]][i],"analyzed.txt",append=TRUE)
}
}
} `