小编Jad*_*ace的帖子

使逻辑向量中的“真”值唯一

我有一个看似简单的问题,但我似乎无法找到一个好的解决方案。

我有一个逻辑向量,如下所示:

vector = c(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)
Run Code Online (Sandbox Code Playgroud)

我希望该向量只包含一个 TRUE 值。所以其中之一需要变成 FALSE。我不想手动完成,因为这是循环的一部分。通常,在循环中生成的逻辑向量将只包含一个 TRUE 值。有时它会生成两个或更多,如果发生这种情况,我想“删除”其他 TRUE 值。

我试过这个:

if(length(which(vector)) > 1) {
    for(j in 1:(length(which(vector)) - 1)) {
      which(vector)[j] <- FALSE
    }
  }
Run Code Online (Sandbox Code Playgroud)

但后来我收到一个错误: Error in which(vector) <- '*vtmp*' : could not find function "which<-"

r

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

如何为 R 中的代码创建内容索引

对于我的工作,我必须编写 600 行以上的脚本。我的脚本对我的同事来说是可读的,这一点很重要,但我注意到,即使在阅读我自己的代码时,我也需要滚动很多次才能找到某个函数。

问题不在于代码丑陋或没有注释——每一行都有注释解释正在做什么以及为什么。它也是有组织的——它遵循一个非常可预测的结构。我所困扰的是所有垂直滚动。这似乎已经过时了。当我编写单词或乳胶文档时,我可以创建被软件识别为索引点的标题。这些索引点随后显示在目录中。

我可以在 R 中做类似的事情吗?有没有任何编程语言允许像这样的索引点?维基百科也这样做,例如链接https://en.wikipedia.org/wiki/Meteorological_history_of_Hurricane_Patricia#Peak_strength将带您进入有关飓风峰值强度的段落。

metadata r metaprogramming

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

根据 R 中其他两列的比较生成新列值

我有一个包含如下信息的数据框:

df <- data.frame(Col1 = c("value1", "value1", "value2", "value2"), Col2 = c("value2", "value1", "value2", "value1"), stringsAsFactors = F)

+--------+--------+
|  Col1  |  Col2  |
+--------+--------+
| value1 | value2 |
| value1 | value1 |
| value2 | value2 |
| value2 | value1 |
+--------+--------+
Run Code Online (Sandbox Code Playgroud)

我想创建第三列,其中包含颜色信息,具体取决于前两列的值是否相同。现在我的脚本是这样的:

for (i in 1:nrow(df)) {
  if(df[i,1] == df[i,2]) {
    df$color[i] <- "black"
  } else {
    df$color[i] <- "grey"
  }
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

+--------+--------+-------+
|  Col1  |  Col2  | color |
+--------+--------+-------+
| value1 | …
Run Code Online (Sandbox Code Playgroud)

comparison r dataframe

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

从 Shiny 中上传的文件生成多个图形/绘图

我是 Shiny 的新手(与 R 一起工作了几个月),我试图弄清楚处理多个上传文件的“Shiny”方式是什么。

我的目标是拥有一个用户可以上传多个文件的界面。必须从这些文件中以大量图表和绘图的形式生成报告。从我在 Shiny 教程中学到的,在服务器端,所有对象都是相互隔离的(意味着它们不能被读取,除非你显式调用另一个函数)。

正如您在下面的代码中看到的那样,这意味着我必须为每个图复制处理代码。这似乎效率低下。处理这个问题的“闪亮”方式是什么?

另外,我遗漏了一堆对于示例来说不是绝对必要的代码。本质上,我需要做更多的处理,我不想为每个情节复制所有代码。

我特别询问服务器端代码。我想读入包含不同内容的多个文件。服务器端代码中的操作只是占位符,我实际上并不想绑定任何东西,但我把它放在那里以保持代码简单。我希望能够对导入的数据框做任何我想做的事情。

library(shiny)

# Define UI for application
ui <- fluidPage(

    # Sidebar with file input
    sidebarLayout(
        sidebarPanel(
            fileInput("people", NULL, multiple = FALSE, accept = ".csv",
                      buttonLabel = "Browse...", placeholder = "people file"),
            fileInput("info", NULL, multiple = FALSE, accept = ".csv",
                      buttonLabel = "Browse...", placeholder = "info file"),
        ),

        # Show the results of the data processing
       mainPanel(
           imageOutput("plot"),
           tableOutput("base_data")
        )
    )
)

# Define server logic required to process the …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

标签 统计

r ×4

comparison ×1

dataframe ×1

metadata ×1

metaprogramming ×1

shiny ×1