小编use*_*057的帖子

在RStudio的R markdown中,如何防止源代码在pdf页面上运行?

我目前有一些看起来像这样的代码:

```{r, tidy=TRUE}
plot(DT$age, DT$height, xlab = "Age of participant in Trials", ylab = "Height of participant in       Trials")
```
Run Code Online (Sandbox Code Playgroud)

现在,我的理解是设置tidyTRUE使得当我将代码编织在一起时,代码不会在页面上运行并且会自行换行.但是,当我执行上面的命令时,我偶尔会在源代码显示中运行.还有另一个函数可以保证代码的包装吗?谢谢!

r rstudio

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

对大型数据集(2 亿 x 2 个变量)运行逻辑回归的有效方法是什么?

我目前正在尝试运行逻辑回归模型。我的数据有两个变量,一个响应变量和一个预测变量。问题是我有 2 亿个观察值。我正在尝试运行逻辑回归模型,但即使在 Amazon 上的 EC2 实例的帮助下,在 R/Stata/MATLAB 中执行此操作也非常困难。我认为问题在于逻辑回归函数是如何在语言本身中定义的。还有另一种方法可以快速运行逻辑回归吗?目前我遇到的问题是我的数据很快就填满了它正在使用的空间。我什至尝试过使用高达 30 GB 的 RAM,但无济于事。任何解决方案都将受到极大欢迎。

python matlab hadoop r stata

5
推荐指数
1
解决办法
3711
查看次数

SQLite 3 - 有没有办法将数据库文件导出到制表符分隔的文本文件?

我目前在我的 linux EC2 服务器中有一个 15 GB 的大型数据库 .db 文件。我知道 SQLite 3 可以使用以下命令直接导出到 .csv 文件:

sqlite3 -header -csv ./home/data.db "select * from datafile;" >> out.csv
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有一个选项可以将 .db 文件导出到制表符分隔的文本文件中。我上下查看了 SQLite 3 的文档,但只找到了对 .csv 文件的引用。有谁知道我如何做到这一点?非常感谢!

linux sqlite

5
推荐指数
1
解决办法
3460
查看次数

神秘:为什么我添加和减去另一个变量时,data.table中的as.character()函数运行得更快?

在将日期转换为大型数据集的字符类时,我注意到了一些非常奇怪的东西.举个例子,我创建了一个模拟数据集,如下所示:

DT = data.table(x=rep("2007-1-1", 1e9), y = rep(1,1e9))
DT[,x] <- as.Date(DT[,x])
Run Code Online (Sandbox Code Playgroud)

现在,我想将日期格式的x列转换为字符.

DT[,x.character:= as.character(x)] 
Run Code Online (Sandbox Code Playgroud)

这需要花费一些时间来处理大型数据集,我注意到如果我们执行以下操作,转换所需的时间会急剧减少:

DT[,x.character:= as.character(x+y-y)]
Run Code Online (Sandbox Code Playgroud)

我在这里做的只是添加y并减去y,所以我真的得到了相同的结果.从逻辑的角度来看,似乎我正在让计算机做更多的工作.但是,为什么这种方法比直接转换方式更快地运行?

为了便于说明,我使用system.time()运行了两次10000行,并获得了以下结果:

DT = data.table(x=rep(as.Date("2007-1-1"), 1e5), y = rep(1,1e5))

system.time(DT[,x.character:= as.character(x)]) 
> user  system elapsed 
1.89    0.12    2.03 

system.time(DT[,x.character:= as.character(x+y-y)]) 
> user  system elapsed 
0.635   0.008   0.643 

system.time(DT[,x.character.sub:= as.character(x+y-y+y-y)]) 
> user  system elapsed 
0.347   0.004   0.351 
Run Code Online (Sandbox Code Playgroud)

我们可以看到,第二种方法所需的时间更少,更有趣的是,第三种方法,使用更多的yy方法,可以节省更多的时间.有原因吗?

谢谢!

r data.table

4
推荐指数
1
解决办法
107
查看次数

在shell脚本中,如何结合使用`Rscript`和`Unix`命令?

我目前正在尝试将R文件作为Rscript文件运行.我在script.sh文件中有以下代码:

#!/bin/bash
cd documents
module load r

#!/usr/bin/env Rscript
mem2 <- 4+5
packageVersion("data.table")
save.image("OUT.RData")
Run Code Online (Sandbox Code Playgroud)

但是,似乎在运行此操作后qsub script.sh,它会返回错误,说明如何识别多个命令.我做错了吗?谢谢!

linux r

4
推荐指数
1
解决办法
623
查看次数

有没有办法在将一个data.frame连接到另一个data.frame时替换匹配行上的列值?

我正在努力通过一些参考专栏将一个数据表的元素与另一个"主"集合在一起.为了使事情更清楚,我创建了一些示例数据:

这是我想要加入另一个"主集"的数据集.

data.frame(refID = c(1,3,4,5,7,8), value = c(3.3,3.9,4.4,8.0,1.1,2.5))

refID   value
1       3.3
3       3.9
4       4.4
5       8.0
7       1.1
8       2.5
Run Code Online (Sandbox Code Playgroud)

主集:

data.frame(refID = 1:9, value = rep(0,9))

refID   value
1       0
2       0
3       0
4       0
5       0
6       0
7       0
8       0
9       0
Run Code Online (Sandbox Code Playgroud)

我基本上希望将第一个数据集中的值列发送到第二个数据集,但是如果存在间隙,则让它们的值为0.最终,我希望得到:

结果集:

refID   value
1       3.3
2       0.0   
3       3.9
4       4.4
5       8.0
6       0.0
7       1.1
8       2.5
9       0.0
Run Code Online (Sandbox Code Playgroud)

我打得周围的一些东西dplyrdata.table包,但似乎无法真正找出这样做的一个很好的和直接的方式.非常感谢建议,非常感谢.

join r dataframe dplyr data.table

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

通过另一列中的值查找矩阵中列的最小值

我试图找到一种方法来找到矩阵中列的最小值,取决于另一列中的值.假设我的矩阵看起来像这样:

A    B
3    1.2
3    3.4
3    0.7
4    4.5
4    4.9
5    0.1
5    0.4
6    5
Run Code Online (Sandbox Code Playgroud)

我希望在A中找到共享相同数字的每列的"局部最大值".

所以,我想得到一个新的变量C,看起来像:

A    B     C
3    1.2   0.7
3    3.4   0.7
3    0.7   0.7
4    4.5   4.5
4    4.9   4.5
5    0.1   0.1
5    0.4   0.1
6    5     5
Run Code Online (Sandbox Code Playgroud)

可以看出,C中的值是B中条目的最小值,在A中共享相同的值.

for(i in 1:length(data)){

if (A[i]==A[i+1])
else C <- min(B[i])

}
Run Code Online (Sandbox Code Playgroud)

像这样的for循环可能会起到作用,但是计算密集且昂贵.我想知道在创建具有最小值的列时是否有更简单的方法可以做到这一点.谢谢!

r

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

是否找到一种有效的方法来计算两个表中的时间间隔集之间的重叠数?

注意:为了方便起见,我使用上一篇文章中的示例数据集。

假设有两个数据集,refmap。他们是:

ref <- data.table(space=rep('nI',3),t1=c(100,300,500),t2=c(150,400,600),id=letters[1:3])

map <- data.table(space=rep('nI',241),t1=seq(0,1200,by=5),t2=seq(5,1205,by=5),res=rnorm(241))
Run Code Online (Sandbox Code Playgroud)

他们看起来像:

> ref
   space t1  t2   id
1:    nI 100 150  a
2:    nI 300 400  b
3:    nI 500 600  c

> map
   space   t1   t2        res
1:    nI    0    5 -0.7082922
2:    nI    5   10  1.8251041
3:    nI   10   15  0.2076552
4:    nI   15   20  0.8047347
5:    nI   20   25  2.3388920
---                           
237:    nI 1180 1185  1.0229284
238:    nI 1185 1190 -0.3657815
239:    nI 1190 1195 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

r ×7

data.table ×3

linux ×2

dataframe ×1

dplyr ×1

hadoop ×1

join ×1

matlab ×1

python ×1

rstudio ×1

sqlite ×1

stata ×1