编写遍历数据集类别生成出现次数向量的For循环问题求助
统计数据集中各类别出现次数的正确实现
你的代码问题出在循环内的比较逻辑:sum(auctionData$Category == catNames) 是把auctionData$Category和整个catNames向量做比较,而非当前循环对应的单个类别catNames[i],导致计算结果错误。
修正后的for循环代码
numAuctions = rep(NA, length(catNames)) for (i in 1:length(catNames)) { numAuctions[i] = sum(auctionData$Category == catNames[i]) }
验证输出
运行后numAuctions会返回每个类别对应的出现次数,示例输出如下:
numAuctions # 输出:5 10 12 7 8 ...
更简洁的替代方案(无需for循环)
如果不限制必须用for循环,R内置函数可以更高效地实现需求:
# 统计所有类别频次,再按catNames的顺序提取结果 numAuctions = table(auctionData$Category)[catNames] # 转为纯向量格式(若需要) numAuctions = as.vector(numAuctions)
内容的提问来源于stack exchange,提问作者Rebecca
相关产品推荐
相关产品推荐

