【问题标题】:Split Data Frame and call subframe rows by their index拆分数据帧并按索引调用子帧行
【发布时间】:2018-08-15 08:13:54
【问题描述】:

这是一个非常基本的 R 编程问题,但我在任何地方都没有找到答案,非常感谢您的帮助:

我将我的大型数据帧拆分为 23 个 4 行长的子帧,如下所示:

DataframeSplits <- split(Dataframe,rep(1:23,each=4))

假设我想调用我可以调用的第二个子帧:

DataframeSplits[2]

但是如果我想调用该子帧的特定行(使用索引位置)怎么办?

我希望有这样的东西(比如我称第二个子帧的第二行):

DataframeSplits[2][2,]

但这不适用于错误消息

Error in DataframeSplits[2][2, ] : incorrect number of dimensions

【问题讨论】:

  • 你必须使用DataframeSplits[[2]][2,],即双括号选择第二个data.frame(使用单括号返回一个列表)

标签: r dataframe indexing split


【解决方案1】:

如果您想对split 返回的list 进行子集化并将其用于以后的子集化,则必须使用这样的双括号来获取 sub-data.frame。然后你可以像你已经尝试过的那样用单括号对这个子集进行子集:

Dataframe <- data.frame(x = rep(c("a", "b", "c", "d"), 23), y = 1)
DataframeSplits <- split(Dataframe,rep(1:23,each=4))

DataframeSplits[[2]][2,]

#   x y
# 6 b 1

更多关于子集的信息可以在优秀的book by Hadley Wickham中找到。

【讨论】:

  • 是的,它有效!我曾尝试过双括号,即 [[2][2,]] 和带有行的一个,即 [2][[2,]] 但放弃了,没有想到这个!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2022-12-17
  • 2018-03-09
  • 2020-12-04
  • 2020-02-17
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
相关资源
最近更新 更多