Df:
df <- tibble(
a = c("z", "x", "y"),
b = c("m", "n", "o"),
c = c("p", "q", "r")
)
-我想看看 names(.)
的结果(检查)在:
df %>%
set_names(c(names(.)[1], unlist(.[2, 2:3])))
-我知道是c("a", "b", "c")
,或 unlist(.[2, 2:3])
中的结果.这是一个例子,我想将这个想法应用到 R 中的任何操作中。那里有什么东西吗?我想深入了解某些功能在做什么。
最佳答案
也许您正在寻找 boomer package通过@Moody_Mudskipper:
安装
使用remotes::install_github("moodymudskipper/boomer")
安装
例子(来自github):
library(boomer)
boom(1 + !1 * 2)
#> 1 * 2
#> [1] 2
#> !1 * 2
#> [1] FALSE
#> 1 + !1 * 2
#> [1] 1
boom(subset(head(mtcars, 2), qsec > 17))
#> head(mtcars, 2)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 21 6 160 110 3.9 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
#> qsec > 17
#> [1] FALSE TRUE
#> subset(head(mtcars, 2), qsec > 17)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
# You can use boom() with {magrittr} pipes, just pipe to boom() at the end of a pipe chain.
library(magrittr)
mtcars %>%
head(2) %>%
subset(qsec > 17) %>%
boom()
#> head(., 2)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 21 6 160 110 3.9 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
#> qsec > 17
#> [1] FALSE TRUE
#> subset(., qsec > 17)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
#> mtcars %>% head(2) %>% subset(qsec > 17)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
#If a call fails, {boomer} will print intermediate outputs up to the occurrence of the error, it can help with debugging:
"tomato" %>%
substr(1, 3) %>%
toupper() %>%
sqrt() %>%
boom()
#> substr(., 1, 3)
#> [1] "tom"
#> toupper(.)
#> [1] "TOM"
#> Error in .Primitive("sqrt")(.): non-numeric argument to mathematical function
Boomer 在执行中间步骤时打印输出,因此不会说明未执行的内容,这与返回解析树的 lobstr::ast() 等函数形成对比。
显然 boomer 并没有“很好地”使用 set_names 函数;这是一个类似的例子:
df %>%
names(.)[1] %>%
boom()
#>names(.)
#>[1] "a" "b" "c"
#>.[names(.), 1]
#> A tibble: 3 x 1
#> a
#> <dbl>
#>1 NA
#>2 NA
#>3 NA
#>df %>% names(.)[1]
#> A tibble: 3 x 1
#> a
#> <dbl>
#>1 NA
#>2 NA
#>3 NA
关于r - 如何一步步查看R中函数的过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67206020/