子集数据.框架以返回r中的特定条件的第一个200行



我有一个data.frame,有330万行和9列。以下是3个相关列的示例。

StimulusName Subject Pupil  Means
1            1       101    3.270000
2            1       101    3.145000
3            1       101    3.265000
4            2       101    3.015000
5            2       101    3.100000
6            2       101    3.051250
7            1       102    3.035000
8            1       102    3.075000
9            1       102    3.050000
10           2       102    3.056667
11           2       102    3.059167
12           2       102    3.060000
13           1       103    3.085000
14           1       103    3.125000
15           1       103    3.115000

我想基于刺激名称和主题来子集数据,然后将该子集的前几行或最后几行。因此,例如,通过获取df$StimulusName == 2 & df$Subject == 102的前2行返回第10和11行。

实际数据框架包含每个刺激和受试者的数千个观测值。我想用它分别绘制刺激的第一个也是最后200个观察结果。

尚未对其进行测试,但应起作用。

第一个200

df_filtered <- subset(df, StimulusName == 2 & Subject == 102) df_filtered <- df_filtered[1:200,]

然后绘制 df_filtered

最后200

df_filtered <- subset(df, StimulusName == 2 & Subject == 102) df_filtered <- df_filtered[(nrow(df_filtered)-199):nrow(df_filtered),]

然后绘制df_filtered

也许您想要这样的东西:

subCond <- function(x, r, c) {
  m <- x[x[, 1] == r & x[, 2] == c,]
  return(m)
}

产生,例如:

> subCond(df, 1, 102)
  StimulusName Subject PupilMeans
7            1     102      3.035
8            1     102      3.075
9            1     102      3.050

> subCond(df, 2, 101)
  StimulusName Subject PupilMeans
4            2     101    3.01500
5            2     101    3.10000
6            2     101    3.05125

最新更新