首页 > 解决方案 > 有没有办法根据从 csv 模板读取的行号值按行号对数据框进行子集化?

问题描述

我有一个基本位置表,我想根据模板中的值在 R 中进行修改。最后一步是通过模板 (csv) 中列为“小时”的行号对基本职位表进行子集化。

例如,模板 (csv) 中“小时”列中的第一个值是“7:22”。我想阅读这个 csv 并有效地只保留 7:22 行。如果“小时”值为“1, 7:22”,我也希望代码能够工作

我的直觉是尝试 position[template$hours[1], ] 因为 position[7:22, ] 会起作用,但这会返回 NA。使用 typeof - 我发现 template$hours[1] 是一个字符,而 7:22 是一个整数,但是将 template$hours[1] 转换为数字和整数都不起作用。

试过:

position[template$hours[1], ]
position[as.numeric(template$hours[1]), ]
position[as.integer(template$hours[1]), ]
position[c(template$hours[1]), ]

按照尝试的顺序:

NAs 强制引入的 NA 强制引入的 NA

编辑:感谢 MrFlick 的提示

虽然这不是它的工作原理,但实际上应该是相同的。

讨论的“基本立场表”是:

position <- data.frame("Hour" = 1:24, "Position" = 0)

讨论的“模板”是:

template <- data.frame(hours = "7:22")

我希望职位表看起来像:

position <- position[7:22, ]

甚至更好:

position$Position[7:22] <- 1

基于以下值:

template$hours[1]

标签: r

解决方案


推荐阅读