1

我目前正在像这样子集我的数据框列df_subset <- df[,c(2)]

       Measurement
       ------------
1        2752
2        2756
3        2756
4        2740
5        2724
6        2536
7        2796
8        2800

输出显示这是一个 50 x 1 的小标题,这是有道理的,因为有 50 行和 1 列。但是,我不确定如何处理小问题。据我了解,我无法像列表或向量那样对它进行索引。索引小标题是否容易,如果可以,如何?如果不是,我将如何将其转换为列表/向量?只是为了让您了解我想要做什么,假设我想索引第 8、15、23 和 47 个测量值,并且我希望最终输出理想地是矢量或其他容易一起工作。

4

2 回答 2

2

索引 atibble与索引data.frames 相同,除了data.frames 尝试返回可能的最低维度,因此有以下区别:

library(tibble)
df = data.frame(Measurement = c(2752,2756,2756,2740,2724,2536,2796,2800))
df_tib = as.tibble(df)

index = c(2,3,6,7)

索引数据框:

df[index,]
# [1] 2756 2756 2536 2796

df_tib[index,]
# A tibble: 4 x 1
#   Measurement
#         <dbl>
# 1        2756
# 2        2756
# 3        2536
# 4        2796

请注意,df[index,]在索引后它被强制转换为向量,因为data.frame它是一个只有一列的数据框。tibble不会进行这种强制。要覆盖此属性,您可以使用drop=FALSE

df[index,, drop=FALSE]
#   Measurement
# 2        2756
# 3        2756
# 6        2536
# 7        2796

要在索引后获取向量,您实际上想要索引column Measurementdata.frame这与or完全相同tibble

df$Measurement[index]
# [1] 2756 2756 2536 2796

df_tib$Measurement[index]
# [1] 2756 2756 2536 2796
于 2017-11-20T17:51:03.877 回答
0

特别是为了从小标题中获取一列,您可以使用pull()

tb %>% pull(2)
tb %>% pull(Measurement)
于 2020-09-23T07:12:33.667 回答