代码示例:
myfun <- function() {
browser()
}
myfun()
Run Code Online (Sandbox Code Playgroud)
我知道它不开放源函数,这可能经常是不受欢迎的,因为可能不清楚我调试哪个函数等。
唯一的问题:可能还是不可能。在“全局选项”中搜索失败
假设我想跟踪一个 data.table 中的哪些行已合并到另一个 data.table 中。有没有办法立即/合并时执行此操作?请参阅下面的示例以及我通常的做法。然而,这似乎效率很低。
library(data.table)
# initial data
DT = data.table(x = c(1,1,1,2,2,1,1,2,2),
y = c(1,3,6))
# data to merge
DTx <- data.table(x = 1:3,
y = 1,
k = "X")
# regular update join
copy(DT)[DTx,
on = .(x, y),
k := i.k][]
#> x y k
#> 1: 1 1 X
#> 2: 1 3 <NA>
#> 3: 1 6 <NA>
#> 4: 2 1 X
#> 5: 2 3 <NA>
#> 6: 1 6 <NA>
#> …Run Code Online (Sandbox Code Playgroud) 我想没有翻转盒的图像,我该怎么做?试过这个(也设置为NULL):
flipBox(
id = 1,
main_img = "",
header_img = "",
...
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我想以编程方式选择一些变量,并以硬编码方式选择和重命名其他一些变量。我知道我可以通过两个步骤来实现这一点setnames(),但我很好奇如何一步完成。
我想我非常接近它通过.SDcols. 但是,当我尝试.SD与重命名的列组合时,“.SDcols列”以“.SD.”为前缀。如何避免前缀?
library(data.table)
dt <- as.data.table(mtcars)[1:5]
dt
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> 1: 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> 2: 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> 3: 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> 4: 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的 tibble,我想迭代它的行以使用 function 来应用函数pmap。我想我可能误解了pmap函数上的一些观点,但我大多很难选择参数。所以我想知道rowwise在这种情况下我是否应该使用函数pmap。不过我还没见过案例。另一个问题是选择要使用列表或select函数进行迭代的变量:
# Here is my tibble
# Imagine I would like to apply a `n_distinct` function with pmap on it every rows
df <- tibble(id = c("01", "02", "03","04","05","06"),
A = c("Jan", "Mar", "Jan","Jan","Jan","Mar"),
B = c("Feb", "Mar", "Jan","Jan","Mar","Mar"),
C = c("Feb", "Mar", "Feb","Jan","Feb","Feb")
)
# It is perfectly achievable with `rowwise` and `mutate` and results in my desired output
df %>%
rowwise() %>%
mutate(overal = n_distinct(c_across(A:C))) …Run Code Online (Sandbox Code Playgroud) 我有一个类似于以下内容的数据集:
我想从星期一的相应值中减去所有星期二的值。因此,生成的第一列将为 Monday_1 - Tuesday_1,生成的第二列将为 Monday_2 - Tuesday_2,依此类推。
这是生成的数据框的样子。
我想保持星期一列的名称相同并选择星期二列。我的真实数据集比这要宽得多,因此不必手动减去要容易得多。理想情况下我想要一个dplyr解决方案。
数据:
df <- structure(list(id = 1:7, Monday_1 = c(4L, 11L, 18L, 6L, 20L,
5L, 12L), Monday_2 = c(20L, 3L, 20L, 12L, 1L, 10L, 15L), Monday_3 = c(14L,
20L, 8L, 17L, 4L, 2L, 3L), Monday_4 = c(13L, 8L, 11L, 3L, 12L,
14L, 17L), Tuesday_1 = c(1L, 14L, 7L, 16L, 2L, 6L, 12L), Tuesday_2 = c(10L,
8L, 1L, 16L, 10L, 13L, 9L), Tuesday_3 = c(4L, 9L, 9L, 8L, 7L,
9L, …Run Code Online (Sandbox Code Playgroud) 这似乎是一个愚蠢的问题,但我已经在网上搜索过,但仍然没有找到任何足够的答复。
我的问题是:假设我们有一个矩阵M,那么我们使用该scale()函数,我们如何通过编写一行代码来提取每列的中心和比例尺(我知道我们可以看到中心和比例尺..),但是我的矩阵有很多列,手动完成很麻烦。
有任何想法吗?非常感谢!
重置单个无功值只需通过 即可完成reactiveVal(NULL)。然而,怎样才能彻底重置呢reactiveValues()?
虚拟应用程序包含我的一些方法来保留新鲜和干净的反应值,但它们都没有真正做到我希望它们做的事情。另外,观察时似乎有一种奇怪的行为reactiveValues。Trigger除非单击按钮,否则它们在清洁后不会触发反应。当我检查他们的状态时,他们对我来说看起来很好。
library(shiny)
library(magrittr)
# UI ---------------------------------------------------------------------------
ui <- fluidPage(
actionButton("create", "Create"),
actionButton("reset", "Reset"),
actionButton("trigger", "Trigger"),
textOutput("out")
)
# Server -----------------------------------------------------------------------
server <- function(input, output, session) {
vals <- reactiveValues()
ids <- reactiveVal()
display <- reactiveVal()
# insert letter when clicked
observeEvent(input$create, {
id <- as.character(length(ids()))
vals[[id]] <- sample(LETTERS, 1)
ids(c(ids(), id))
})
observeEvent(input$reset, {
# Options to reset reactive Values -------------------------------------
vals <<- reactiveValues()
# vals <- NULL
for(i in …Run Code Online (Sandbox Code Playgroud) 我有一个 pandas 数据框,我想转换成字典。
email,account_no,cust_id
xyz,123,456
abc,789,654
nbc,345,907
Run Code Online (Sandbox Code Playgroud)
从 df 中,我希望电子邮件作为键,其他两列作为值。需要的输出如
{xyz:[123,456],
abc:[789,654],
nbc:[345,907]}
Run Code Online (Sandbox Code Playgroud)
有人可以让我知道如何实现这一目标吗?
cummin/cummax不能用于 Date 对象。这会触发Error in Math.Date(x): cummax not defined for "Date" objects.
我想知道这背后的原因是什么,因为我认为完全有可能确定日期的累积最小值/最大值。特别是因为最小/最大是为日期对象定义的,所以这个限制似乎是任意的。
这里描述的解决方案是使用zoo::rollapplyr()或临时转换。
cummin/cummax未定义日期的原因是什么?x <- as.Date(c("2022-01-01", "2023-01-01", "1900-01-01", "2024-01-01"),
origin = "1970-01-01")
Run Code Online (Sandbox Code Playgroud)
# not working
cummax(x)
#> Error in Math.Date(x): cummax not defined for "Date" objects
cummin(x)
#> Error in Math.Date(x): cummin not defined for "Date" objects
Run Code Online (Sandbox Code Playgroud)
rollapplyr()zoo::rollapplyr(x, FUN = min, width …Run Code Online (Sandbox Code Playgroud) 我想在 my 中创建新列dat,由满足条件的值填充。所以,我想保留valuewhere whereregime == "SA"并在 new column 中的整个组中填充此值vals.sa。
这结合了filterand mutate,但我不确定它们的正确组合是什么?Filter只是保持行满足条件,但如何在组中的所有行上扩展此值?
我的数据:
dat <- data.frame(id = c(1,1,2,2,2,2,3,3),
regime = c("SA", "B", "SA", "B", "C", "F", "SA", "D"),
value = c(3,5,1,2,5,6,7,8))
Run Code Online (Sandbox Code Playgroud)
使用处理数据 dplyr
dat %>%
# group data by id
group_by(id) %>%
# how to write this condition and get values instead or TRUE/FALSE?
mutate(val.sa = regime == "SA")
Run Code Online (Sandbox Code Playgroud)
与填充val.sa值对应的预期输出regime == "SA"
id regime value …Run Code Online (Sandbox Code Playgroud)