我需要创建一个空版本的数据集,以清除所有值,同时保留列名,更重要的是,保留变量的类.
下面是一些玩具数据,三个不同的变量具有三个不同的属性
df <- data.frame(x = rnorm(5),
y = factor(letters[5:1]),
z = c(1:2, NA, 4:5))
glimpse(df)
Rows: 5
Columns: 3
$ x <dbl> -0.24530142, -0.05332072, 0.12387791, -0.26148671, -0.53779766
$ y <fct> e, d, c, b, a
$ z <int> 1, 2, NA, 4, 5
现在,当我try 在dplyr
中使用mutate
和across
来清除这些值时…
df %>%
mutate(across(everything(),
~ NA)) -> blankDF
blankDF
x y z
1 NA NA NA
2 NA NA NA
3 NA NA NA
4 NA NA NA
5 NA NA NA
看起来不错,but
glimpse(blankDF)
# Rows: 5
# Columns: 3
# $ x <lgl> NA, NA, NA, NA, NA
# $ y <lgl> NA, NA, NA, NA, NA
# $ z <lgl> NA, NA, NA, NA, NA
它剥离了所有变量的属性,使它们变得合乎逻辑.
Can someone give me advice on how to get the blank dataset while retaining the attributes?个
一个整齐的解决方案会很好,但任何解决方案都很受欢迎.