小编Cur*_*072的帖子

如何编写仅适用于 r 矩阵中奇数列的 apply() 函数?

假设我们有一个如下所示的“测试”矩阵: (1,2,3, 4,5,6, 7,8,9, 10,11,12) 通过运行生成test <- matrix(1:12, ncol = 4)。一个简单的 3 x 4(行 x 列)矩阵,由 1 到 12 的数字组成。

现在假设我们想将值 1 添加到每个奇数矩阵列中的每个元素,因此我们最终得到一个具有以下值的矩阵:(2,3,4,4,5,6,8, 9,10,10,11,12)。我们如何使用apply()函数来做到这一点?

请注意,这是一个简化的示例。在我正在使用的更完整的代码中,矩阵根据用户输入动态扩展/收缩,因此我需要一个apply()计算矩阵实际列数的函数,而不是在上面的示例中使用 4 列的固定假设。(并且我不会向元素添加值 1;我正在运行并行最小值函数test[,1] <- pmin(test1[,1], 5)来表示将每个值限制为最大值 5)。

由于我目前对apply()函数族的了解有限,到目前为止我所能做的就是apply(test, 2, function(x) {return(x+1)})向所有列中的所有元素添加值 1,而不仅仅是奇数列。

r matrix apply

4
推荐指数
1
解决办法
474
查看次数

如何编写 apply() 函数将矩阵列中的每个元素限制为最大允许值?

我正在尝试学习如何使用这些apply()功能。

假设我们有一个 3 行 2 列的矩阵test <- matrix(c(1,2,3,4,5,6), ncol = 2),并且我们希望第一列 (1, 2, 3) 中每个元素的最大值不超过 2,因此我们最终得到一个矩阵 (1 ,2,2,4,5,6)。

如何编写一个apply()函数来做到这一点?

这是我的最新尝试:test1 <- apply(test[,1], 2, function(x) {if(x > 2){return(x = 2)} else {return(x)}})

r apply

2
推荐指数
1
解决办法
148
查看次数

在R闪亮中,如何将滚动合并到模式对话框中?

在运行下面的 MWE 代码时,如底部图像所示,用户输入到模态对话框中呈现的矩阵中会导致矩阵压缩。用户输入到矩阵中的列越多,矩阵压缩得越多,直到留下一个难以阅读的矩阵。

有没有办法在添加列时不允许矩阵压缩,而是向右扩展,用户使用滚动条向左/向右导航?今天早上我一直在尝试插入滚动条,但还没有成功。

也许挑战在于shinyMatrix包装本身。我想知道是否可以使用 DT Table,因为它呈现得很好(带有滚动),并shinyMatrix作为输入/输出的后端引擎?Packagerhandsontable虽然很漂亮,但在模式对话框中效果不佳。

MWE代码:

library(shiny)
library(shinyMatrix)

ui <- fluidPage(

  sidebarLayout(
    sidebarPanel(
      uiOutput("panel"),
      actionButton("show2nd","Show 2nd input (in modal)")
    ),
    mainPanel(plotOutput("plot1"))
  )
)

server <- function(input, output, session){
 
  output$panel <- renderUI({
    tagList(
      matrixInput("input1", 
        value = matrix(c(10,5), 1, 2, dimnames = list(c("1st input"),c("X|Y",""))),
        rows =  list(extend = FALSE, names = TRUE),
        cols =  list(extend = FALSE, 
                     delta = 1,
                     delete = FALSE,
                     names = TRUE, 
                     editableNames = FALSE,
                     multiheader=TRUE),
        class = "numeric"),
      helpText("Generate …
Run Code Online (Sandbox Code Playgroud)

r modal-dialog shiny dt

1
推荐指数
1
解决办法
745
查看次数

如何使用R中的dplyr mutate函数来计算运行余额?

在底部的 MWE 代码中,我尝试在从一行运行到下一行时为每个唯一 id 生成运行余额。例如,运行以下代码时,输​​出应为:

data2 <- 

 id plusA plusB minusC running_balance  [desired calculation for running balance]
  1     3     5    10              -2   3 + 5 - 10 = -2
  2     4     5     9               0   4 + 5 - 9 = 0
  3     8     5     8               5   8 + 5 - 8 = 5
  3     1     4     7               3   id doesn't change so 5 from above + (1 + 4 - 7) = 3
  3     2     5     6               4   id doesn't …
Run Code Online (Sandbox Code Playgroud)

r accumulate dplyr

1
推荐指数
1
解决办法
180
查看次数

如何将 match 函数与 mutate 函数一起使用?

我正在尝试在mutate(). df1假设我们从一个如下所示的数据框开始,由下面的代码生成:

  ID Status
1  1      N
2  2      Y
3  3      Y
4  4      N
5  5      Y

df1 <- data.frame(
  ID = c(1,2,3,4,5),
  Status = c("N","Y","Y","N","Y")
)
Run Code Online (Sandbox Code Playgroud)

我使用 dplyr 的mutate()函数根据最右侧“状态”列的值生成一个新列。下面是新的tmp数据帧输出和生成它的 dplyr 代码(这是一个超级简单的示例,适用于我的更大问题 - 就这样吧):

  ID Status Flag
1  1      N   No
2  2      Y  Yes
3  3      Y  Yes
4  4      N   No
5  5      Y  Yes

tmp <- 
  df1 %>% 
  mutate("Flag"=case_when(Status=="Y"~"Yes",TRUE~"No"))
Run Code Online (Sandbox Code Playgroud)

我试图在上面嵌入“匹配”函数的等效项mutate(),以便插入到 Flag 列中的值取决于df1数据帧中的 ID 与这两个附加数据帧中的 …

r match mutated dplyr

1
推荐指数
1
解决办法
1814
查看次数

如何使用 dplyr 在 R 中复制 Excel 的索引匹配公式?

我是 Excel 的重度用户,正在学习 R 和易于使用的 R 包 dplyr。我经常使用 Excel 的索引(...,match(...)) 公式组合从列中提取(查找)目标值。我将如何在 R 中并使用 dplyr 执行相同的操作,如下面的 Excel 插图所示?在 RI 中,我尝试复制标记为“匹配”的 G 列,该列的公式显示在其右侧突出显示为黄色并标记为“匹配列公式”的列中。

我正在使用 Excel 和配套的 R 代码来显示一系列逐步计算,以防 G 列看起来很麻烦!

在此输入图像描述

在此示例中重现起始数据帧的代码:

myData <- 
  data.frame(
    Element = c("A","A","C","A","B","B"),
    Code1 = c(0,0,0,0,1,1),
    Code2 = c(1,2,1,3,1,2),
    Code3 = c(0,0,0,0,1,2),
    Code4 = c(0,0,0,0,1.1,1.2)
  )
Run Code Online (Sandbox Code Playgroud)

lookup indexing r excel-formula dplyr

1
推荐指数
1
解决办法
800
查看次数

标签 统计

r ×6

dplyr ×3

apply ×2

accumulate ×1

dt ×1

excel-formula ×1

indexing ×1

lookup ×1

match ×1

matrix ×1

modal-dialog ×1

mutated ×1

shiny ×1