【问题标题】:R concatenate columns with added notationsR用添加的符号连接列
【发布时间】:2020-10-06 08:46:42
【问题描述】:

我正在尝试从数据框中选择几列,然后将它们输出到 Excel 文件。对于最后一列,我想连接几列,并在它们之间添加符号。

data %>%
  select(Place = place, Time = time, Number = paste(number_2, "(", number_1, 
                                              ",", number_3, ")")) %>%
  openxlsx::write.xlsx(file = here("data"))

我收到了错误

object not found

如果我包含数据框

data %>%
  select(Place = place, Time = time, Number = paste(data$number_2, "(", data$number_1, 
                                              ",", data$number_3, ")")) %>%
  openxlsx::write.xlsx(file = here("data"))

我收到以下错误

不能子集到不存在的列

数据样本是

Place   Time    Number 2    Number 1    Number 3
R1  T1  .5  .4  .7
R2  T1  .2  .1  .3
R1  T2  .4  .3  .6
R2  T2  .3  .2  .4

感谢您的帮助!

【问题讨论】:

  • 请出示您的data的一部分。
  • 不要在dplyr 动词中使用data$,充其量它是多余/不必要的,通常(例如,通过分组或中间管道重塑/更改)如果不是,它是错误数据一个错误。
  • 好的,我已经添加了数据样本

标签: r concatenation tidyr paste


【解决方案1】:

您正在尝试访问名为 number_2 等的列,但这些列在您发布的示例数据中不存在。

您需要使用正确的列名:`Number 2`

data %>%
  select(
    Place = place,
    Time = time,
    Number = paste(`Number 2`, "(", `Number 1`, ",", `Number 3`, ")")
  ) %>%
  openxlsx::write.xlsx(file = here("data"))

注意backticks (`),在 R 代码中 “non-syntactic” names 周围需要它(在您的情况下,因为您的列名包含空格,这在语法上无效)。

【讨论】:

    猜你喜欢
    • 2014-03-12
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2016-03-20
    • 1970-01-01
    相关资源
    最近更新 更多