R语言如何用head函数直接输出两个不相邻列的前若干行数据
R提取数据框指定不相邻列前N行的正确方法
核心实现(无需提前做子集化处理)
基础R语法
直接把需要提取的列号放在拼接函数c()中传入列索引位即可,以下示例提取前20行数据:
# 完整写法,明确标注行、列索引位 head(tu_timeadd[, c(76, 82)], n = 20) # 简化写法:单索引默认对列做选择,可省略逗号 head(tu_timeadd[c(76, 82)], n = 20)
Tidyverse语法
如果习惯使用dplyr的链式操作,也可以用以下写法实现:
library(dplyr) tu_timeadd |> select(76, 82) |> head(n = 20)
原有写法出错原因说明
head(tu_timeadd[76&82]):&是逻辑运算符,数值76、82转换为逻辑值均为TRUE,TRUE & TRUE结果仍为TRUE,相当于索引传入了单个逻辑真,会返回全部列head(tu_timeadd[76,82]):R数据框索引默认按[行, 列]规则匹配,该写法实际是提取第76行第82列的单个值,行列逻辑完全相反head(tu_timeadd[76 |82]):|同样是逻辑运算符,运算后结果仍为TRUE,最终返回全部列
内容的提问来源于stack exchange,提问作者tchoup
相关产品推荐
相关产品推荐

