小编the*_*ail的帖子

尝试更新一列并创建另一列时,R data.table段错误

是否可以在data.table中创建新列并同时更新现有列?以下不起作用.谢谢.

library(data.table)
dt <- data.table(x=runif(4), y=runif(4), z=c("x","x","y","y"))
dt[, c("x", "y") := list(x[1], y[1]), by=z]     # works
dt[, c("x", "newx") := list(x[1], y[1]), by=z]
Run Code Online (Sandbox Code Playgroud)

抓到Segfault:

address 0x20000010, cause 'memory not mapped'
Run Code Online (Sandbox Code Playgroud)

追溯:

 1: [.data.table(dt, , :=(c("x", "newx"), list(x[1], y[1])), by = z)
 2: dt[, :=(c("x", "newx"), list(x[1], y[1])), by = z]
Run Code Online (Sandbox Code Playgroud)

r data.table

7
推荐指数
1
解决办法
298
查看次数

使用cron安排R脚本

我正在尝试使用cron安排我的R脚本,但它无法正常工作.看来R在cron中找不到包.有人可以帮帮我吗?谢谢.

以下是我的bash脚本

# source  my profile
. /home/winie/.profile
# script.R will load packages
R CMD BATCH /home/script.R 
Run Code Online (Sandbox Code Playgroud)

cron r

6
推荐指数
1
解决办法
6876
查看次数

使用R导入凌乱的数据

有没有人知道以适当的形式将以下数据导入R?我尝试了strsplit函数: test <- strsplit(test,"[[:space:]]+")其中test是文件的名称,包括以下凌乱的数据.不知何故,我最终只得到一个字符变量.我想以适当的形式提供八个不同的变量.请你帮助我好吗?

Black Eagles    01/12 - 12/11   1500 W  7.0 420 48  Away +3
Blue State  02/18 - 04/21   1293 L  8.0 490 48  Home +1
Hawks   01/13 - 02/17   1028 L  4.0 46  460 Away
New Apple   09/23 - 11/23   563 L   3.0 470 47  Home +2
Black White 07/05 - 09/26   713 L   5.2 500 45  Home +4
PBO 10/24 - 10/30   1495 L  1.9 47  410 Away
Run Code Online (Sandbox Code Playgroud)

r

6
推荐指数
1
解决办法
1362
查看次数

barplot背后的情节线

我想创建一个条形图,其中条形图绘制在水平线的顶部.

以下代码完成此操作:

y <- c(1,2,3,5)
barplot(y)
abline(h=mean(y))
barplot(y, add=T)
Run Code Online (Sandbox Code Playgroud)

但是,我担心add=T参数in barplot(),如果反复使用,会引入打印伪像.我很好奇是否有上述代码的替代品(尽管上面的代码可能是最快的方法).

plot r

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

删除缺少值的行的最快方法?

我正在使用大型数据集x.我想删除x一组列中的一列或多列中缺少的行,该列x由字符向量指定varcols.

到目前为止,我已经尝试了以下内容:

require(data.table)
x <- CJ(var1=c(1,0,NA),var2=c(1,0,NA))
x[, textcol := letters[1:nrow(x)]]
varcols <- c("var1","var2")

x[, missing := apply(sapply(.SD,is.na),1,any),.SDcols=varcols]
x <- x[!missing]
Run Code Online (Sandbox Code Playgroud)

有更快的方法吗?谢谢.

r data.table

6
推荐指数
1
解决办法
939
查看次数

添加一列排名

我有一些数据:

test <- data.frame(A=c("aaabbb",
"aaaabb",
"aaaabb",
"aaaaab",
"bbbaaa")
)
Run Code Online (Sandbox Code Playgroud)

等等.所有元素都是相同的长度,并且在我得到之前已经排序.

我需要建立一个新的行列,"第一","第二","第三",之后的任何内容都可以留空,并且需要考虑关系.所以在上面的例子中,我想获得以下输出:

   A       B
 aaabbb  First
 aaaabb  Second
 aaaabb  Second
 aaaaab  Third
 bbbaaa
 bbbbaa  
Run Code Online (Sandbox Code Playgroud)

我查看了rank()和其他一些使用它的帖子,但我无法让它去做我想要的.

r ranking

6
推荐指数
1
解决办法
219
查看次数

"x [] < - as.integer(x)"是什么意思"

当我阅读R手册时,我遇到了一些代码行如下(从R手册复制'colSums'):

x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
dimnames(x)[[1]] <- letters[1:8]
x[] <- as.integer(x)
Run Code Online (Sandbox Code Playgroud)

有人能告诉我最后一行的目的是什么吗?谢谢!

r

6
推荐指数
1
解决办法
352
查看次数

以R丢失格式循环播放日期

这令我很沮丧.即使lubridate我在循环它们时也无法保持日期以保持其类型.例如:

require(lubridate)
yearrange = ymd(20110101) + years(seq(4))
yearrange
#[1] "2012-01-01 UTC" "2013-01-01 UTC" "2014-01-01 UTC" "2015-01-01 UTC"
class(yearrange)
#[1] "POSIXct" "POSIXt" 
Run Code Online (Sandbox Code Playgroud)

但是,如果我试图循环多年(在我的数据集中为每年创建一个单独的图):我丢失了年份的格式,并且必须重新投射数据

for (yr in yearrange) { show(yr) }
#[1] 1325376000
#[1] 1356998400
#[1] 1388534400
#[1] 1420070400
Run Code Online (Sandbox Code Playgroud)

如果我循环指定索引,我会返回日期对象:

for (i in seq(length(yearrange))) { show(yearrange[i]) }
#[1] "2012-01-01 UTC"
#[1] "2013-01-01 UTC"
#[1] "2014-01-01 UTC"
#[1] "2015-01-01 UTC"
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以避免索引选项,而不使用foreach,或者这是唯一的方法吗?

loops r date lubridate

6
推荐指数
1
解决办法
1880
查看次数

重命名包含空格的列时,dplyr rename_会产生错误

rename_ 按预期用于非病理列名称

%>% rename_(foo = 'testcol')
Run Code Online (Sandbox Code Playgroud)

但是,如果我想重命名一个有空格的列呢?

%>% rename_(foo = 'test col')
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

Error in parse(text = x) (from #12) : <text>:1:6: unexpected symbol
Run Code Online (Sandbox Code Playgroud)

我可以使用make.names但是没有办法在没有额外步骤的情况下重命名列吗?

r dplyr

6
推荐指数
1
解决办法
3456
查看次数

通过时间计算相邻像素的平均相关性

我有一堆4个栅格.我想要一个像素和它的8个邻居之间的平均时间相关性.

一些数据:

library(raster)  

r1=raster(matrix(runif(25),nrow=5))
r2=raster(matrix(runif(25),nrow=5))
r3=raster(matrix(runif(25),nrow=5))
r4=raster(matrix(runif(25),nrow=5))
s=stack(r1,r2,r3,r4)
Run Code Online (Sandbox Code Playgroud)

所以对于位置x的像素,在NE,E,SE,S等位置有8个邻居,我想要平均值

cor(x,NE)
cor(x,E)
cor(x,SE)
cor(x,S)
cor(x,SW)
cor(x,W)
cor(x,NW)
cor(x,N)
Run Code Online (Sandbox Code Playgroud)

以及在结果栅格中保存在位置x的平均值.边缘单元将是NA,或者如果可能的话,标记用于计算与其接触的单元(3或5个单元)的平均相关性.谢谢!

r raster

6
推荐指数
1
解决办法
666
查看次数

标签 统计

r ×10

data.table ×2

cron ×1

date ×1

dplyr ×1

loops ×1

lubridate ×1

plot ×1

ranking ×1

raster ×1