R语言如何编写函数从数据框列第二个值起间隔选取元素
R实现从数据框指定列第二个值开始隔位选取元素
你当前使用的代码存在两处不符合需求的问题:
- 索引起始位置设置为1,会从第一个值开始选取,和「从第二个值开始」的要求不符
- 代码选取的是满足步长规则的整行内容,没有限定到指定列的对应元素
可直接复用的实现函数
# 传入参数:输入数据框、要选取的目标列名(或列索引) select_alt_elem <- function(df, col) { # 生成从第2位开始、步长为2的位置索引 idx <- seq(from = 2, to = nrow(df), by = 2) # 提取目标列对应位置的元素,返回向量格式结果 df[[col]][idx] }
使用方法
假设你要选取数据框df中名为score的列的对应元素,直接调用函数即可:
result <- select_alt_elem(df, "score")
如果你需要保留符合索引规则的行、输出结果仍为数据框格式,只需要把函数内的返回语句替换为
df[idx, col, drop = FALSE]即可,避免单列数据被自动转换为向量类型。
如果不需要封装成函数,直接执行单行代码也能实现需求,以选取df的score列为例:
df[seq(2, nrow(df), 2), "score"]
内容的提问来源于stack exchange,提问作者Daisy
相关产品推荐
相关产品推荐

