子集数据集后的奇怪变量名称

问题描述 投票:1回答:1

我在Rstudio中有一个数据框df。我想提取列diff并使用以下代码删除第一行:

# Import data and packages
library(outbreaks)
df <- measles_hagelloch_1861[order(measles_hagelloch_1861$date_of_prodrome), c(1, 3)]
library(lubridate)
library(plyr)

# Generate variable diff
df$diff <- difftime(lag(df$date_of_prodrome, 1), df$date_of_prodrome, units = "days" )

# Subset dataset
time_between_two_events <- as.data.frame(df[-1, 'diff'])
head(time_between_two_events)

和结果

  df[-1, "diff"]
1              2
2              6
3              0
4              1
5              3
6              0

您能解释一下为什么我得到奇怪的变量名称为df[-1, "diff"]吗?我希望它应该是diff

r dataframe subset
1个回答
0
投票

由于子集只有一列,因此它将数据帧更改为向量。

df[-1, 'diff']
#Time differences in days
#[1]  -2  -6   0  -1  -3   0  -1  -1 .....

然后将此向量转换为提供奇怪名称的data.frame。

使用drop = FALSE避免将数据帧强制转换为矢量。

df[-1, 'diff', drop = FALSE]

#       diff
#173  -2 days
#177  -6 days
#178   0 days
#174  -1 days
#45   -3 days
#183   0 days
#175  -1 days
#...
#...
© www.soinside.com 2019 - 2024. All rights reserved.