如何将一行 0 添加到数据框
How add a row of 0 to a dataframe
我在 R 中有这个数据框
mat <-structure(list(a = c(2, 5, 90, 77, 56), b = c(45, 78, 98, 55,
63), c = c(77, 85, 3, 22, 4), d = c(52, 68, 4, 25, 79), e = c(14,
73, 91, 87, 94)), class = "data.frame", row.names = c(NA, -5L
))
我想添加一行“0”作为垫子的第一行。我需要的输出是
a b c d e
1 0 0 0 0 0
2 2 45 77 52 14
3 5 78 85 68 73
4 90 98 3 4 91
5 77 55 22 25 87
6 56 63 4 79 94
我该怎么办?感谢
我们可以使用rbind
mat <- rbind(0, mat)
-输出
mat
a b c d e
1 0 0 0 0 0
2 2 45 77 52 14
3 5 78 85 68 73
4 90 98 3 4 91
5 77 55 22 25 87
6 56 63 4 79 94
这是另一个使用 tidyverse
的选项,我们遍历每一列以将 0 添加到第一个位置,然后作为数据框重新绑定在一起。
library(tidyverse)
map_df(mat, ~ c(0, .x))
输出
a b c d e
<dbl> <dbl> <dbl> <dbl> <dbl>
1 0 0 0 0 0
2 2 45 77 52 14
3 5 78 85 68 73
4 90 98 3 4 91
5 77 55 22 25 87
6 56 63 4 79 94
或者另一种选择是只保留数据帧的第一行,然后将所有值更改为 0,然后使用 bind_rows
添加到 mat
。
bind_rows(mutate(mat[1, ], across(everything(), ~ 0)), mat)
我在 R 中有这个数据框
mat <-structure(list(a = c(2, 5, 90, 77, 56), b = c(45, 78, 98, 55,
63), c = c(77, 85, 3, 22, 4), d = c(52, 68, 4, 25, 79), e = c(14,
73, 91, 87, 94)), class = "data.frame", row.names = c(NA, -5L
))
我想添加一行“0”作为垫子的第一行。我需要的输出是
a b c d e
1 0 0 0 0 0
2 2 45 77 52 14
3 5 78 85 68 73
4 90 98 3 4 91
5 77 55 22 25 87
6 56 63 4 79 94
我该怎么办?感谢
我们可以使用rbind
mat <- rbind(0, mat)
-输出
mat
a b c d e
1 0 0 0 0 0
2 2 45 77 52 14
3 5 78 85 68 73
4 90 98 3 4 91
5 77 55 22 25 87
6 56 63 4 79 94
这是另一个使用 tidyverse
的选项,我们遍历每一列以将 0 添加到第一个位置,然后作为数据框重新绑定在一起。
library(tidyverse)
map_df(mat, ~ c(0, .x))
输出
a b c d e
<dbl> <dbl> <dbl> <dbl> <dbl>
1 0 0 0 0 0
2 2 45 77 52 14
3 5 78 85 68 73
4 90 98 3 4 91
5 77 55 22 25 87
6 56 63 4 79 94
或者另一种选择是只保留数据帧的第一行,然后将所有值更改为 0,然后使用 bind_rows
添加到 mat
。
bind_rows(mutate(mat[1, ], across(everything(), ~ 0)), mat)