r - 将具有特定值的新行添加到第一列中,然后将 "-"添加到其余列中

标签 r data-manipulation

所以我有一个数据集,我想向其中添加一个新行(其中有 70 多列)。 如果可能的话,我希望第一列包含城市名称,然后该行中的所有其他列都只有破折号。

这是一个示例数据:

mydata = data.frame (Column1 =c("1","1","1","1","1","1","1",'1',"1","1"),
                     Column2 = c("2000-01-01","2000-01-05","2000-02-02", "2000-02-12", 
                              "2000-02-14","2000-05-13", "2000-05-15", "2000-05-17", 
                              "2000-05-16", "2000-05-20"),
                     Column3 = c("A","A","B","B","B","A","A","A","C","C"))

请参阅下面我的代码。这段代码允许我添加一行,将多伦多添加到第一列中,但我很难将“-”添加到其他列中。我不想列出每一列,因为我的列有 70 多列。

mydata <- mydata %>% bind_rows(list(`Column1` = "TORONTO"),.)

我尝试了以下方法,但不断出现错误。


mydata <- mydata %>% bind_rows(list(`Column1` = "TORONTO"),col(2:ncol) = "-")

```

Any help would be appreciated!

最佳答案

我们可以使用add_row

library(dplyr)
mydata %>%
  add_row(Column1 = "TORONTO", !!! setNames(rep('-', ncol(.)-1),
      names(.)[-1]))

-输出

   Column1    Column2 Column3
1        1 2000-01-01       A
2        1 2000-01-05       A
3        1 2000-02-02       B
4        1 2000-02-12       B
5        1 2000-02-14       B
6        1 2000-05-13       A
7        1 2000-05-15       A
8        1 2000-05-17       A
9        1 2000-05-16       C
10       1 2000-05-20       C
11 TORONTO          -       -

默认情况下,它会在底部添加行。如果我们想在某个位置添加,请指定 .before

mydata %>%
  add_row(Column1 = "TORONTO", !!! setNames(rep('-', ncol(.)-1),
      names(.)[-1]), .before = 1)

-输出

  Column1    Column2 Column3
1  TORONTO          -       -
2        1 2000-01-01       A
3        1 2000-01-05       A
4        1 2000-02-02       B
5        1 2000-02-12       B
6        1 2000-02-14       B
7        1 2000-05-13       A
8        1 2000-05-15       A
9        1 2000-05-17       A
10       1 2000-05-16       C
11       1 2000-05-20       C

或者可以使用summariseacrossc连接-作为第一个元素

mydata %>%
   summarise(Column1 = c("TORONTO", Column1), across(-Column1, ~ c("-", .x)))
   Column1    Column2 Column3
1  TORONTO          -       -
2        1 2000-01-01       A
3        1 2000-01-05       A
4        1 2000-02-02       B
5        1 2000-02-12       B
6        1 2000-02-14       B
7        1 2000-05-13       A
8        1 2000-05-15       A
9        1 2000-05-17       A
10       1 2000-05-16       C
11       1 2000-05-20       C

关于r - 将具有特定值的新行添加到第一列中,然后将 "-"添加到其余列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73141553/

相关文章:

r - "Stretching"R 中的表

mysql - 计算最大值 (100%)

r - 避免在 sweave/pgfsweave 编译期间显示数字

python - 加载多个文件并将它们保存为变量

r - 为什么 Shiny.onInputChange 在 R shiny 中有不稳定的行为?

R:在 Shiny 的表格输出中将部分单元格加粗

r - 根据某些条件生成随机数

r - 使用 R 插入缺失数据的值和另一个数据框中的值

regex - R 正则表达式 : Parenthesis Not Acting as Metacharacter

r - 复选框组中的 Shiny BS 模态