Я пропускаю способ добавления данных в ответ SO прозрачным образом. Мой опыт заключается в том, что объект structure
из dput()
иногда смущает неопытных пользователей. Тем не менее, я не испытываю терпения, чтобы копировать/вставлять его в простой фрейм данных каждый раз и хотел бы его автоматизировать. Что-то похожее на dput()
, но в упрощенной версии.
Скажем, я копированием/вставкой, а некоторые другие имеют такие данные,
Df <- data.frame(A = c(2, 2, 2, 6, 7, 8),
B = c("A", "G", "N", NA, "L", "L"),
C = c(1L, 3L, 5L, NA, NA, NA))
выглядит так,
Df
#> A B C
#> 1 2 A 1
#> 2 2 G 3
#> 3 2 N 5
#> 4 6 <NA> NA
#> 5 7 L NA
#> 6 8 L NA
Внутри одного целого, одного фактора и одного числового вектора,
str(Df)
#> 'data.frame': 6 obs. of 3 variables:
#> $ A: num 2 2 2 6 7 8
#> $ B: Factor w/ 4 levels "A","G","L","N": 1 2 4 NA 3 3
#> $ C: int 1 3 5 NA NA NA
Теперь я хотел бы поделиться этим с SO, но у меня не всегда есть исходный кадр данных, из которого он пришел. Чаще всего я pipe()
это в форме SO, и единственный способ узнать это - dput()
. Подобно,
dput(Df)
#> structure(list(A = c(2, 2, 2, 6, 7, 8), B = structure(c(1L, 2L,
#> 4L, NA, 3L, 3L), .Label = c("A", "G", "L", "N"), class = "factor"),
#> C = c(1L, 3L, 5L, NA, NA, NA)), .Names = c("A", "B", "C"), row.names = c(NA,
#> -6L), class = "data.frame")
но, как я сказал наверху, эта structure
может выглядеть довольно запутанной. По этой причине я ищу способ сжатия dput()
вывода каким-то образом. Я представляю результат, который выглядит примерно так,
dput_small(Df)
#> data.frame(A = c(2, 2, 2, 6, 7, 8), B = c("A", "G", "N", NA, "L", "L"),
#> C = c(1L, 3L, 5L, NA, NA, NA))
Это возможно? Я понимаю там другие классы, такие как lists
, tbl
, tbl_df
и т.д.