【问题标题】:loop to select first and last values in 2 columns in R循环选择R中2列中的第一个和最后一个值
【发布时间】:2013-11-14 12:03:17
【问题描述】:

我需要循环进入 df2 并获取 df2$col1 中的第一个值和 df2$col2 中的最后一个值,并使用这些值仅选择相应的行以及 df1$col1 中的所有行

如果您能帮我解决这个问题,我将不胜感激!

df1

col1 
1 
2
3
4
5
etc

df2

col1 col2
1200  1250
1299  1325 
1350  1500

【问题讨论】:

  • `[` 子集对你很有用。我建议在控制台中输入?"["
  • 还有help("[.data.frame")

标签: r loops


【解决方案1】:

正如 SimonO101 所指出的,您可以使用"["%in%

试试这个:

df1[df1$col1 %in% head(df2,1)[1,1] : tail(df2, 1)[1,2], , drop=FALSE]

编辑

正如@flodel 评论的那样,您甚至可以使用<= 来提高效率

df1[df2[1,1] <= df1$col1 & df1$col1 <= df2[nrow(df2),2], , drop=FALSE]

相当于

df1[df1$col1 >= df2[1,1] & df1$col1 <= df2[nrow(df2),2], , drop=FALSE]

【讨论】:

  • OP 有两个 data.frames df1df2,在您的解决方案中只有一个,它回答了问题吗?我错过了什么吗? :O
  • 不,是我丢失了第二个 data.frame 名称!我以为只有一个。
  • 使用&gt;=&lt;= 应该更有效。
猜你喜欢
  • 2020-12-19
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2023-04-07
  • 2022-01-03
  • 1970-01-01
  • 2016-02-22
相关资源
最近更新 更多