是否有可能使用钻营的R?
一种可能性是具有特殊paste功能(可以将其视为此处的后续操作),例如(在错误的代码中):
'%+%' <- (sep)function(x,y) paste(x,y,sep=sep)
"a"%+%("")"b"%+%("_")"c" #gives "ab_c"
Run Code Online (Sandbox Code Playgroud)
什么是可能的实现R?
PS:这paste只是一个例子,我很好奇R......
是否可以在方法名称中使用尖括号,例如:
class Foo(ind1:Int,ind2:Int){...}
var v = new Foo(1,2)
v(1) = 3 //updates ind1
v<1> = 4 //updates ind2
Run Code Online (Sandbox Code Playgroud)
真实的情况显然比这更复杂!!我试图提供一个方便的用户界面.
我是新手scala.我尝试编写一个"重复" Array(Scala 2.9.0)的函数:
def repeat[V](original: Array[V],times:Int):Array[V]= {
if (times==0)
Array[V]()
else
Array.concat(original,repeat(original,times-1)
}
Run Code Online (Sandbox Code Playgroud)
但我无法编译这个(得到一个错误manifest)...
在ggplot2中有一种方法可以获得情节类型"b"吗?见例子:
x <- c(1:5)
y <- x
plot(x,y,type="b")
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想用它们的值替换点,以获得类似于这个着名示例的东西:

编辑:这里有一些样本数据(我想在情节类型为"b"的方面绘制每个"猫"):
df <- data.frame(x=rep(1:5,9),y=c(0.02,0.04,0.07,0.09,0.11,0.13,0.16,0.18,0.2,0.22,0.24,0.27,0.29,0.31,0.33,0.36,0.38,0.4,0.42,0.44,0.47,0.49,0.51,0.53,0.56,0.58,0.6,0.62,0.64,0.67,0.69,0.71,0.73,0.76,0.78,0.8,0.82,0.84,0.87,0.89,0.91,0.93,0.96,0.98,1),cat=rep(paste("a",1:9,sep=""),each=5))
Run Code Online (Sandbox Code Playgroud)
此致,穆萨
为字符重载'+'最直接的方法是什么?我已经定义'%+%' <- function(...) paste(...,sep=""):
str <- "aa"%+%"bb"%+%"cc" #str="aabbcc"
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这种语法.我认为str <- "aa"+"bb"+"cc"会更好.
(我正在构建与RODBC一起使用的长SQL查询,paste在这种情况下通常不是很方便.有什么建议吗?)
我们假设我有一个向量
r <- rnorm(4)
Run Code Online (Sandbox Code Playgroud)
和W尺寸为20000*200 的矩阵,例如:
W <- matrix(rnorm(20000*200),20000,200)
Run Code Online (Sandbox Code Playgroud)
我想计算一个新的矩阵M尺寸的5000*200,使得m11 <- r%*%W[1:4,1],m21 <- r%*%W[5:8,1],m12 <- r%*%W[1:4,2]等(即分组的行4×4和计算的产物).
这样做的最佳(速度,记忆)方式是什么?
提前致谢.
这是关于R的未来的一个相当普遍的问题:任何希望看到compiler和Rllvm(来自Omegahat)或R的另一个JIT编译方案的合并(我知道有Ra,但最近没有更新)?
在我的测试中,速度增益compiler对于"复杂"功能来说是微不足道的......
我正在尝试创建一个张量(可以被设想为多维数组)包scala.到目前为止,我将数据存储在1D中Vector并进行索引算法.
但切片和子阵列并不容易获得.人们需要做很多算术才能将多维索引转换为1D索引.
有没有存储多维数组的最佳方法?如果没有,即一维数组是最好的解决方案,那么如何最佳地对数组进行切片(一些具体的代码对我有帮助)?
Rcpp::NumericVector orig(vector);
Rcpp::NumericVector vec(orig.size());
std::transform(orig.begin(),orig.end(),vec.begin(),sqrt);
return Rcpp::List::create(Rcpp::Named("result")=vec,Rcpp::Named("original") =orig);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
no matching function for call to 'transform(Rcpp::traits::storage_type<14>::type*, Rcpp::traits::storage_type<14>::type*, Rcpp::traits::storage_type<14>::type*, <unresolved overloaded function type>)
Run Code Online (Sandbox Code Playgroud)
我使用带有Rtools的Windows XP(没有STL的其他示例工作!),使用R 2.12.0.