R中的列未被识别为变量[重复]

Posted

技术标签:

【中文标题】R中的列未被识别为变量[重复]【英文标题】:Column not being recognised as variable in R [duplicate] 【发布时间】:2020-12-22 04:01:34 【问题描述】:

嗨,

我刚刚转置了一个大型数据集,我意识到第一行没有列名。我已经包含了数据集的摘录,我尝试使用names(df)[1] <- "Year",但它更改了第二列而不是第一列的变量名称。有没有办法可以为第一列添加一个变量名?

df <- structure(list(Construction = c("3209.4", "3307.0", "3519.3", "3693.0", 
"3545.1", "3620.2"), Manufacturing = c(" 654.9", " 692.9", " 785.1", 
" 810.1", " 744.8", " 793.6")), row.names = c("1975 1Q", "1975 2Q", 
"1975 3Q", "1975 4Q", "1976 1Q", "1976 2Q"), class = "data.frame")


df
#>         Construction Manufacturing
#> 1975 1Q       3209.4         654.9
#> 1975 2Q       3307.0         692.9
#> 1975 3Q       3519.3         785.1
#> 1975 4Q       3693.0         810.1
#> 1976 1Q       3545.1         744.8
#> 1976 2Q       3620.2         793.6

由reprex package (v0.3.0) 于 2020 年 9 月 3 日创建

devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.2 (2020-06-22)
#>  os       macOS Catalina 10.15.5      
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_AU.UTF-8                 
#>  ctype    en_AU.UTF-8                 
#>  tz       Australia/Melbourne         
#>  date     2020-09-03                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.0.2)
#>  backports     1.1.9   2020-08-24 [1] CRAN (R 4.0.2)
#>  callr         3.4.3   2020-03-28 [1] CRAN (R 4.0.2)
#>  cli           2.0.2   2020-02-28 [1] CRAN (R 4.0.2)
#>  crayon        1.3.4   2017-09-16 [1] CRAN (R 4.0.2)
#>  desc          1.2.0   2018-05-01 [1] CRAN (R 4.0.2)
#>  devtools      2.3.1   2020-07-21 [1] CRAN (R 4.0.2)
#>  digest        0.6.25  2020-02-23 [1] CRAN (R 4.0.2)
#>  ellipsis      0.3.1   2020-05-15 [1] CRAN (R 4.0.2)
#>  evaluate      0.14    2019-05-28 [1] CRAN (R 4.0.1)
#>  fansi         0.4.1   2020-01-08 [1] CRAN (R 4.0.2)
#>  fs            1.5.0   2020-07-31 [1] CRAN (R 4.0.2)
#>  glue          1.4.2   2020-08-27 [1] CRAN (R 4.0.2)
#>  highr         0.8     2019-03-20 [1] CRAN (R 4.0.2)
#>  htmltools     0.5.0   2020-06-16 [1] CRAN (R 4.0.2)
#>  knitr         1.29    2020-06-23 [1] CRAN (R 4.0.2)
#>  magrittr      1.5     2014-11-22 [1] CRAN (R 4.0.2)
#>  memoise       1.1.0   2017-04-21 [1] CRAN (R 4.0.2)
#>  pkgbuild      1.1.0   2020-07-13 [1] CRAN (R 4.0.2)
#>  pkgload       1.1.0   2020-05-29 [1] CRAN (R 4.0.2)
#>  prettyunits   1.1.1   2020-01-24 [1] CRAN (R 4.0.2)
#>  processx      3.4.3   2020-07-05 [1] CRAN (R 4.0.2)
#>  ps            1.3.4   2020-08-11 [1] CRAN (R 4.0.2)
#>  R6            2.4.1   2019-11-12 [1] CRAN (R 4.0.2)
#>  remotes       2.2.0   2020-07-21 [1] CRAN (R 4.0.2)
#>  rlang         0.4.7   2020-07-09 [1] CRAN (R 4.0.2)
#>  rmarkdown     2.3     2020-06-18 [1] CRAN (R 4.0.2)
#>  rprojroot     1.3-2   2018-01-03 [1] CRAN (R 4.0.2)
#>  sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 4.0.2)
#>  stringi       1.4.6   2020-02-17 [1] CRAN (R 4.0.2)
#>  stringr       1.4.0   2019-02-10 [1] CRAN (R 4.0.2)
#>  testthat      2.3.2   2020-03-02 [1] CRAN (R 4.0.2)
#>  usethis       1.6.1   2020-04-29 [1] CRAN (R 4.0.2)
#>  withr         2.2.0   2020-04-20 [1] CRAN (R 4.0.2)
#>  xfun          0.16    2020-07-24 [1] CRAN (R 4.0.2)
#>  yaml          2.2.1   2020-02-01 [1] CRAN (R 4.0.2)
#> 
#> [1] /Library/Frameworks/R.framework/Versions/4.0/Resources/library

【问题讨论】:

你有行名,但它不是列row.names(df)# [1] "1975 1Q" "1975 2Q" "1975 3Q" "1975 4Q" "1976 1Q" "1976 2Q" 【参考方案1】:

它是row.names,而不是列。如果我们需要创建具有行名的列,请使用 rownames_to_column from tibble

library(tibble)
library(dplyr)
df <-  df %>% 
    rownames_to_column('Year')

【讨论】:

以上是关于R中的列未被识别为变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

空格在 fread 中未被识别为 NA

pip 未被识别为内部命令 [重复]

我收到此错误“'npx' 未被识别为内部或外部命令,” [重复]

c# datetime.parseexact 字符串未被识别为有效的日期时间 [重复]

Relay 的注入网络层未被识别为 React 应用程序中的函数

不可打印的字符未被识别为字段分隔符