【问题标题】:Strange variable name after subsetting dataset子集数据集后的奇怪变量名称
【发布时间】:2020-03-18 10:41:12
【问题描述】:

我在 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】:

    由于子集只有一列,它会将数据框更改为向量。

    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
    #...
    #...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-30
      相关资源
      最近更新 更多