基于sunhour列条件提取指定列的R代码是否正确?
代码正确性判断与修正
你的这段代码不正确,存在两个关键问题:
- 数据框索引顺序错误:R中数据框的索引逻辑是
[行筛选条件, 列筛选条件],你把列选择放在了行条件的前面,逻辑完全颠倒。 - 使用了中文双引号:R代码要求必须使用英文半角引号
"",中文引号“”会被识别为无效语法导致报错。
正确实现方式
方式一:Base R 原生写法
修正索引顺序和引号后,直接用索引筛选:
df_conditions[df_conditions$sunhour > 5, c("temperature", "humidity")]
也可以用subset()函数,写法更简洁易懂:
subset(df_conditions, sunhour > 5, select = c(temperature, humidity))
方式二:tidyverse/dplyr 写法(推荐,适合复杂数据操作)
先加载dplyr包,通过管道符组合筛选和列选择操作:
library(dplyr) df_conditions %>% filter(sunhour > 5) %>% select(temperature, humidity)
内容的提问来源于stack exchange,提问作者rufina_mar
相关产品推荐
相关产品推荐

