如何从dataframe列表中筛选Num_tweets值高于平均值的行?
解决方法
你当前的代码只返回了逻辑判断结果,没有用这个结果去筛选原数据框的行。要得到符合条件的完整数据行,需要在匿名函数里用逻辑向量对原数据框做索引:
above_average <- lapply(mylist, function(x) { # 计算当前dataframe的Num_tweets列平均值,na.rm处理缺失值(可选但推荐) num_avg <- mean(x$Num_tweets, na.rm = TRUE) # 用逻辑索引筛选行,保留Num_tweets大于平均值的记录 x[x$Num_tweets > num_avg, ] })
补充说明
- 先单独计算平均值并赋值给变量,让逻辑判断更清晰;
na.rm = TRUE是可选但实用的参数:如果你的Num_tweets列存在缺失值,不加这个参数会导致mean()返回NA,进而无法完成筛选;x[逻辑向量, ]的写法会保留所有列(包括Date),返回符合条件的完整行数据。
内容的提问来源于stack exchange,提问作者LZL
相关产品推荐
相关产品推荐

