小编Sam*_*Sam的帖子

什么是R中的替换功能?

我搜索了一个参考,以了解R中的替换函数,但我还没有找到.我试图理解R中替换函数的概念.我有下面的代码,但我不明白它:

"cutoff<-" <- function(x, value){
 x[x > value] <- Inf
 x
 }
Run Code Online (Sandbox Code Playgroud)

然后我们用以下方式调用cutoff:

 cutoff(x) <- 65
Run Code Online (Sandbox Code Playgroud)

谁能解释R中的替换功能是什么?

r

48
推荐指数
3
解决办法
6085
查看次数

函数invisible()有什么作用?

R帮助解释invisible()为"返回对象的临时不可见副本的函数".我很难理解invisible()用于什么.你能解释invisible()这个功能有用和什么时候有用吗?

我已经看到它invisible()几乎总是在方法函数中使用print().这是一个例子:

### My Method function:
print.myPrint <- function(x, ...){
  print(unlist(x[1:2]))
  invisible(x)
}

x = list(v1 = c(1:5), v2 = c(-1:-5) )
class(x) = "myPrint"
print(x)
Run Code Online (Sandbox Code Playgroud)

我在想,如果没有invisible(x),我将无法完成如下任务:

a = print(x)
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.所以,我想知道它有什么invisible()作用,它在哪里有用,最后它在上面的方法打印功能中的作用是什么?

非常感谢您的帮助.

r

46
推荐指数
3
解决办法
2万
查看次数

在函数中设置默认值?

我有一个简单的密度函数如下:

dpower <- function(x, b, r){
if ((b <= 0 | r <= 0)) 
return("Wrong parameters entered!")
else{
 density.temp <- (r/b)*(x/b)^(r - 1)
 density.temp[which(x >= b | x <= 0)] <- NA
 return(density.temp)
 } 
}
Run Code Online (Sandbox Code Playgroud)

此函数返回与指定分布的值x对应的密度,参数为b和r.我想在x上设置默认值,如果用户没有指定x,则默认值通过.我们可以简单地设置dpower < - function(x = x.default,b,r)......但是,我的默认值取决于r和b.我怎样才能做到这一点?假设x的默认值是:

seq(from = 0.05, to = b, by = 0.001)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助,

r function default-value

21
推荐指数
2
解决办法
4万
查看次数

连接字符串与cat()和paste()之间有什么区别?

连接字符串与cat和之间有什么区别paste

特别是,我有以下问题.

  1. 为什么R 在打印调用结果时使用双引号(")cat(但在使用时使用引号paste)?

    > cat("test")
    test
    > paste("test")
    [1] "test"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 为什么函数lengthmode哪些函数可用于R中的几乎所有对象,而不是 "工作" cat

    > length(cat("test"))
    test[1] 0
    > mode(cat("test"))
    test[1] "NULL"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 为什么C风格的转义序列一起工作cat,而不是paste

    > cat("1)Line1\n 2)Line2\n 3)Line3")
    1)Line1
     2)Line2
     3)Line3
    > paste("1)Line1\n 2)Line2\n 3)Line3")
    [1] "1)Line1\n 2)Line2\n 3)Line3"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 为什么R的回收规则不适用cat

    > cat("Grade", c(2, 3, 4, 5))
    Grade 2 3 4 5
    > paste("Grade", c(2, 3, …
    Run Code Online (Sandbox Code Playgroud)

r character string-concatenation

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

在使用xtable()生成的表中将负数的颜色更改为红色?

我正在用knitr在R写一份报告.我正在使用xtable()在报告中生成表.我的一张表包括负数和正数.我想把负数的颜色改成红色.我怎样才能做到这一点?显然,一个简单的解决方案是更改xtable生成的乳胶代码但请注意我有一个自动报告,数字可以随新数据集更改,我不想手动设置颜色.

这是一个简单的代码:

\documentclass{article}
\begin{document}
<<simpleExamp, results=tex, echo=FALSE>>=
library(knitr)
library(xtable)
testMatrix <- matrix(c(sample(-10:10,10)), ncol = 2)
xtable(testMatrix)
@
\end{document} 
Run Code Online (Sandbox Code Playgroud)

如何将负数设为红色?谢谢您的帮助.

r xtable knitr

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

"运行C++程序时,系统无法找到指定的文件"

我安装了Visual Studio 2010.我编写了一个简单的代码,我确信它是正确的但不幸的是,当我运行代码时,我得到下面的错误.

这是我的代码:

#include<iostream>
using namespace std;
int main (){ 
  cout <<"Hello StackOverFlow ;)";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是错误:

无法启动程序'C:\ Users\Soheil\Desktop\New folder\sam\Debug\sam.exe系统找不到指定的文件

你能帮我解决这个问题吗?我应该在特定目录中定义项目吗?我花了很多时间来解决这个问题,但还没有取得任何成功.

c++ visual-studio

16
推荐指数
3
解决办法
15万
查看次数

R中%%运算符的C++版本

C中的任何函数是否等同%in%于R中的运算符?考虑R中的以下命令:

which(y %in% x)
Run Code Online (Sandbox Code Playgroud)

我试图在C++中找到相同的东西(特别是在Armadillo中),我找不到任何东西.然后我编写了自己的函数,与上面的R命令相比,这个函数非常慢.

这是我写的:

#include <RcppArmadillo.h>
// [[Rcpp::depends("RcppArmadillo")]]

// [[Rcpp::export]]
arma::uvec myInOperator(arma::vec myBigVec, arma::vec mySmallVec ){
 arma::uvec rslt = find(myBigVec == mySmallVec[0]);
 for (int i = 1; i < mySmallVec.size(); i++){
   arma::uvec rslt_tmp = find(myBigVec == mySmallVec[i]);
   rslt = arma::unique(join_cols( rslt, rslt_tmp ));
 }
 return rslt;
}
Run Code Online (Sandbox Code Playgroud)

现在,在上面的代码中采购后,我们有:

x <- 1:4
y <- 1:10
res <- benchmark(myInOperator(y, x), which(y %in% x), columns = c("test",
      "replications", "elapsed", "relative", "user.self", "sys.self"), 
       order = "relative")
Run Code Online (Sandbox Code Playgroud)

以下是结果:

                 test replications elapsed …
Run Code Online (Sandbox Code Playgroud)

c++ r armadillo rcpp

15
推荐指数
2
解决办法
1012
查看次数

R中不同类型函数之间的差异

我很感激帮助理解R中几种类型函数之间的主要区别.

在不同类型的函数的定义中,我有点不知所措,并且已经变得有些难以理解不同类型的函数如何彼此相关.

具体来说,我对以下类型的函数之间的关系和差异感到困惑:

  1. Generic或Method:基于输入参数的类,通过使用Method Dispatch调用适当的方法函数的泛型函数.

  2. 隐形与可见

  3. 原始与内在

我对这些不同类型的函数如何相互关联(如果有的话)以及它们之间的各种差异和重叠感到困惑.

r function

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

处理R Shiny中的输入数据集

我是R-Shiny的新手,我的问题可能很简单.经过几个小时的思考和搜索,我无法解决问题.这是问题所在:

1)我的应用程序要求用户上传他的数据集.

2)然后在服务器文件中,我读取数据集并进行了一些分析,并将结果报告给用户界面.

3)我的用户界面有4个不同的输出.

4)我在每个输出的"render"函数中读取数据集.问题:通过这样做,数据在每个函数的范围内本地定义,这意味着我需要为每个输出再次读取它.

5)这非常低效,有没有替代方案?使用反应?

6)下面是一个示例代码,显示了我如何编写我的服务器.R:

shinyServer(function(input, output) {

   # Interactive UI's:
   # %Completion

   output$myPlot1 <- renderPlot({
     inFile <- input$file

      if (is.null(inFile)) return(NULL)
      data <- read.csv(inFile$datapath, header = TRUE)

      # I use the data and generate a plot here

   })

   output$myPlot2 <- renderPlot({
     inFile <- input$file

      if (is.null(inFile)) return(NULL)
      data <- read.csv(inFile$datapath, header = TRUE)

      # I use the data and generate a plot here

   })

 })
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得输入数据一次并只使用输出函数中的数据?

非常感谢,

r shiny

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

使用Rcpp从C++调用用户定义的R函数

我有一个带有一堆用户定义的R函数的R代码.我试图让代码运行得更快,当然最好的选择是使用Rcpp.我的代码涉及相互调用的函数.因此,如果我用C++编写一些函数,我应该能够在我的c ++代码中调用并运行一些R函数.在一个简单的例子中,考虑R中的以下代码:

mySum <- function(x, y){
 return(2*x + 3*y)
}
x <<- 1
y <<- 1
Run Code Online (Sandbox Code Playgroud)

现在考虑我正在尝试访问上述函数的C++代码:

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
int mySuminC(){
 Environment myEnv = Environment::global_env();
 Function mySum = myEnv["mySum"];
 int x = myEnv["x"];
 int y = myEnv["y"];
 return wrap(mySum(Rcpp::Named("x", x), Rcpp::Named("y", y)));
 }
Run Code Online (Sandbox Code Playgroud)

当我使用内联函数sourceCpp()在R中源文件时,我收到错误:

 "invalid conversion from 'SEXPREC*' to int
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我调试代码吗?我的代码有效吗?可以归纳一下吗?使用mySum函数比我在代码中做的更好吗?

非常感谢您的帮助.

r rcpp

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