【发布时间】:2015-10-24 05:23:04
【问题描述】:
我有一个农贸市场数据集,其中一列是“MarketName”(列 2),一列是“WIC”(列 21)。如果 WIC 列 = Y,我编写了一个函数来检索市场名称。我的输出应该是 2,207 个名称的列表,但是我得到了 8,144 行的输出,因为对于 WIC 列 = N 的行,我的输出显示 NA .有 45 列和 8,144 行,但这是一个只有两列的假数据集
MarketName <- c("Union Springs Famers Market","Union Square Farmers Market", "Union Square Greenmarket", "Union Street Farmers Market", "Unity Market Day Farmers", "University Farmers Market")
WIC <- c("Y","N","N","N","Y","Y")
data3 <- data.frame(MarketName, WIC)
data3$MarketName <- as.character(data3$MarketName)
data3$WIC <- as.character(data3$WIC)
这是我的功能(可能是问题所在?)
marketacceptWIC <- function(mydf)
{
market <- 0
for(i in 1:length(data3$WIC))
{
if(data3[i,2] == "Y")
market[i] <- data3[i,1]
}
return(market)
}
这是我得到的输出示例
[1] "Union Springs Famers Market" NA NA NA
[5] "Unity Market Day Farmers" "University Farmers Market"
我想要的只是一个接受WIC的农贸市场清单
[1] "Union Springs Farmers' Market"
[2] "Unity Market Day Farmers"
[3] "University Farmers Market"
【问题讨论】:
标签: r function for-loop output