【问题标题】:How can I split column readers in R?如何在 R 中拆分列阅读器?
【发布时间】:2021-05-18 20:49:31
【问题描述】:

我想根据分隔符将列阅读器分成两个。来自以下df

day-W  day-S  nun-W  nun-S 
 1      4      2      5 
 2      4      2      2 
 2      6      3      3  

我的期望是:

day    day    nun    nun 
 W      S      W      S
 1      4      2      5 
 2      4      2      2 
 2      6      3      3  

【问题讨论】:

  • 你想做什么,你打算用预期的输出做什么?预期的输出会改变数据结构,所有的列都会变成字符。
  • 也许您只是想更改数据的显示方式?查看相关帖子:stackoverflow.com/q/33216290/680068

标签: r


【解决方案1】:

我们从列名中获取子字符串,rbind 将子字符串作为第一行,然后将列名替换为另一个子字符串

nm1 <- sub("-.*", "", names(df1))
nm2 <- sub(".*-", "", names(df1))
df2 <- rbind(nm2, df1)
names(df2) <- nm1

-输出

df2
#  day day nun nun
#1   W   S   W   S
#2   1   4   2   5
#3   2   4   2   2
#4   2   6   3   3

注意:不建议列名重复

数据

df1 <- structure(list(`day-W` = c(1L, 2L, 2L), `day-S` = c(4L, 4L, 6L
), `nun-W` = c(2L, 2L, 3L), `nun-S` = c(5L, 2L, 3L)), class = "data.frame", 
row.names = c(NA, 
-3L))

【讨论】:

    猜你喜欢
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    相关资源
    最近更新 更多