小编Mil*_*der的帖子

R存储包在哪里?

install.packages()R中的函数是自动解压缩实用程序,它在R中获取和安装包.

  1. 如何找出R选择存储包的目录?

  2. 如何更改R存储和访问包的目录?

packages r

191
推荐指数
3
解决办法
19万
查看次数

将git repo合并到另一个repo的分支中

鉴于repo Foo和repo Bar.我想将Bar与Foo合并,仅限于一个单独的分支,称为baz.

git checkout -b baz <=把Bar repo放在这里.

git

92
推荐指数
3
解决办法
6万
查看次数

从R中的字符向量中删除引号

假设你有一个字符向量:

char <- c("one", "two", "three")
Run Code Online (Sandbox Code Playgroud)

当您引用索引值时,您将获得以下内容:

> char[1]
[1] "one"
Run Code Online (Sandbox Code Playgroud)

如何从返回值中删除引号以获得以下内容?

[1] one
Run Code Online (Sandbox Code Playgroud)

quotes r

44
推荐指数
6
解决办法
14万
查看次数

如何重命名R对象?

我正在使用quantmod包从Yahoo导入金融系列数据.

library(quantmod)
getSymbols("^GSPC")
[1] "GSPC"
Run Code Online (Sandbox Code Playgroud)

我想将对象"GSPC"的名称更改为"SPX".我在reshape包中尝试了重命名功能,但它只更改了变量名."GSPC"对象有向量GSPC.Open,GSPC.High等.我想将"GSPC"重命名为"SPX",也将GSPC.Open改为SPX.Open等.

r rename quantmod

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

为什么apply()方法比R中的for循环慢?

作为最佳实践的问题,我试图确定apply()在矩阵中创建函数是否更好,或者如果通过函数简单地循环矩阵更好.我尝试了两种方式,并惊讶地发现apply()速度较慢.任务是取一个向量并将其评估为正数或负数,然后如果为正数则返回1,如果为负则返回-1.该mash()函数循环和squish()功能传递给apply()函数.

million  <- as.matrix(rnorm(100000))

mash <- function(x){
  for(i in 1:NROW(x))
    if(x[i] > 0) {
      x[i] <- 1
    } else {
      x[i] <- -1
    }
    return(x)
}

squish <- function(x){
  if(x >0) {
    return(1)
  } else {
    return(-1)
  }
}


ptm <- proc.time()
loop_million <- mash(million)
proc.time() - ptm


ptm <- proc.time()
apply_million <- apply(million,1, squish)
proc.time() - ptm
Run Code Online (Sandbox Code Playgroud)

loop_million 结果:

user  system elapsed 
0.468   0.008   0.483 
Run Code Online (Sandbox Code Playgroud)

apply_million 结果:

user  system …
Run Code Online (Sandbox Code Playgroud)

benchmarking r

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

如何在OS X(或Ubuntu)中清除R控制台

可能重复:
在R中清除控制台的功能

在bash中,它是这样的:

$ clear
Run Code Online (Sandbox Code Playgroud)

而且我相信它是Windows版R中的CTL-L.但是如何在Unix-R R控制台中清除R控制台呢?你需要写一个特殊的功能,那会是什么样子?

console r

20
推荐指数
4
解决办法
3万
查看次数

R中是否使用了递归函数?

用于演示递归的规范函数是factorial()函数.我自己尝试了一个简单的实现,并提出了这个:

factorial <- function(x){

if(x==1)
    return( 1)
else
    return(x*factorial(x-1))

}
Run Code Online (Sandbox Code Playgroud)

根据我对该主题的调查,似乎存在一些争论,即使用递归或简单迭代是否更好.我想看看R如何实现它并在gregmisc包中找到了factorial()函数.我以为我会找到类似于我的实现或者经常迭代的东西.我发现了这个:

> factorial
function (x) 
gamma(x + 1)
<environment: namespace:base>
Run Code Online (Sandbox Code Playgroud)

因此,我对R是否更喜欢递归或迭代的问题的答案是"既不".至少在这个实现中.是否有充分的理由避免R中的递归函数?

更新:

gregmisc版本:

>ptm <- proc.time()
> factorial(144)
[1] 5.550294e+249
> proc.time() - ptm
   user  system elapsed 
  0.001   0.000   0.001 
Run Code Online (Sandbox Code Playgroud)

我的版本:

> factorial(144)
[1] 5.550294e+249
> proc.time() - ptm
  user  system elapsed 
  0.002   0.001   0.006 
Run Code Online (Sandbox Code Playgroud)

recursion r

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

R中的assign()和<< - 有什么区别?

在R中编写函数的常规方法(据我所知)是为了避免副作用并从函数返回一个值.

contained <- function(x) {
  x_squared <- x^2
  return(x_squared)
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,返回从函数输入计算的值.但是变量x_squared不可用.

但是如果你需要违反这个基本的函数式编程原则(我不确定R对这个问题有多严重)并从函数中返回一个对象,你有两个选择.

escape <- function(x){
  x_squared  <<- x^2
  assign("x_times_x", x*x, envir = .GlobalEnv)
}
Run Code Online (Sandbox Code Playgroud)

这两个对象x_squared,并x_times_x返回.一种方法比另一种方法更好,为什么呢?

functional-programming r global-variables

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

为什么你会在C中的main()函数之前使用数据类型?

很多人都熟悉C语言中的hello world程序:

#include <stdio.h>

main ()
{
    printf ("hello world");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么有些在main()函数之前,int如下所示:

int main()
Run Code Online (Sandbox Code Playgroud)

另外,我已经看到void输入的内容()如下:

int main(void)
Run Code Online (Sandbox Code Playgroud)

这似乎是额外的打字,但也许这是一个在其他情况下支付红利的最佳做法?

另外,main()如果你要返回一个字符串,为什么会先加一个int?如果有的话,人们会期望:

char main(void)
Run Code Online (Sandbox Code Playgroud)

关于为什么我们在函数结束时返回0也很模糊.

c program-entry-point

13
推荐指数
3
解决办法
4704
查看次数

打开文件夹中的所有文件

假设您要打开/ trunk子目录下checkout文件夹中的所有文件.假设文件名为first.c second.r third.cpp.如何使用单个命令将所有文件打开到vim中.

明显的答案如下

$ vim first.c second.r third.cpp
Run Code Online (Sandbox Code Playgroud)

但你能更简单地做到这一点吗?

vim

13
推荐指数
5
解决办法
2万
查看次数