我搜索了一个参考,以了解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帮助解释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()
作用,它在哪里有用,最后它在上面的方法打印功能中的作用是什么?
非常感谢您的帮助.
我有一个简单的密度函数如下:
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)
谢谢你的帮助,
连接字符串与cat
和之间有什么区别paste
?
特别是,我有以下问题.
为什么R 在打印调用结果时不使用双引号("
)cat
(但在使用时使用引号paste
)?
> cat("test")
test
> paste("test")
[1] "test"
Run Code Online (Sandbox Code Playgroud)为什么函数length
和mode
哪些函数可用于R中的几乎所有对象,而不是 "工作" cat
?
> length(cat("test"))
test[1] 0
> mode(cat("test"))
test[1] "NULL"
Run Code Online (Sandbox Code Playgroud)为什么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)为什么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)我正在用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)
如何将负数设为红色?谢谢您的帮助.
我安装了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中的任何函数是否等同%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) 我很感激帮助理解R中几种类型函数之间的主要区别.
在不同类型的函数的定义中,我有点不知所措,并且已经变得有些难以理解不同类型的函数如何彼此相关.
具体来说,我对以下类型的函数之间的关系和差异感到困惑:
Generic或Method:基于输入参数的类,通过使用Method Dispatch调用适当的方法函数的泛型函数.
隐形与可见
原始与内在
我对这些不同类型的函数如何相互关联(如果有的话)以及它们之间的各种差异和重叠感到困惑.
我是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函数的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函数比我在代码中做的更好吗?
非常感谢您的帮助.