小编Ale*_*lex的帖子

数据表中的NA

我有一个data.table包含一些组.我操作每个组,一些组返回数字,其他组返回NA.出于某种原因data.table,将所有东西重新组合起来很麻 这是一个错误还是我误解了?这是一个例子:

dtb <- data.table(a=1:10)
f <- function(x) {if (x==9) {return(NA)} else { return(x)}}
dtb[,f(a),by=a]

Error in `[.data.table`(dtb, , f(a), by = a) : 
  columns of j don't evaluate to consistent types for each group: result for group 9 has     column 1 type 'logical' but expecting type 'integer'
Run Code Online (Sandbox Code Playgroud)

我的理解是NA与R中的数字兼容,因为显然我们可以拥有data.table具有NA价值的数字.我意识到我可以返回NULL,这将工作正常,但问题是NA.

r na data.table

10
推荐指数
1
解决办法
5402
查看次数

rbind两个data.frame保留行顺序和行名称

我有一个data.frame对象列表,我想将它们相互追加,即merge(..., all=T).但是,merge似乎删除了我需要保持原样的行名称.有任何想法吗?例:

x = data.frame(a=1:2, b=2:3, c=3:4, d=4:5, row.names=c("row_1", "another_row1"))
y = data.frame(a=c(10,20), b=c(20,30), c=c(30,40), row.names=c("row_2", "another_row2"))
> merge(x, y, all=T, sort=F)
     a  b  c  d
  1  1  2  3  4
  2  2  3  4  5
  3 10 20 30 NA
  4 20 30 40 NA
Run Code Online (Sandbox Code Playgroud)

merge r dataframe rbind

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

将字符转换为日期*快速*在R中

可能重复:
为什么as.Date在字符向量上变慢?

data.frame从数据库中读取了一个大的(大约60密耳的观察结果)RMySQL.日期是作为字符引入的(似乎没有办法改变这个)所以我用它as.Date来转换日期.然而,这需要很长时间才能进行如此多的观察.有什么办法可以让它更快吗?

posix r date character

9
推荐指数
1
解决办法
4298
查看次数

当键列数不同时合并data.table

我试图理解data.table文档中的逻辑并且有点不清楚.我知道我可以尝试这个,看看会发生什么,但我想确保没有病态的情况,因此想知道逻辑是如何实际编码的.当两个data.table对象具有不同数目的键列的,例如a具有2至b有3个,并在运行c <- a[b],将ab被前两个键列简单地合并或将在自动第三列合并到第三键列中b?一个例子:

require(data.table)
a <- data.table(id=1:10, t=1:20, v=1:40, key=c("id", "t"))
b <- data.table(id=1:10, v2=1:20, key="id")
c <- a[b]
Run Code Online (Sandbox Code Playgroud)

这应该选择aid键列匹配的行b.例如,对于id==1in b,有2行b和4行a,应该生成8行c.这确实是发生的事情:

> head(c,10)
    id  t  v v2
 1:  1  1  1  1
 2:  1  1 21  1
 3:  1 11 11  1
 4:  1 11 31  1
 5:  1 …
Run Code Online (Sandbox Code Playgroud)

merge r data.table

9
推荐指数
1
解决办法
3675
查看次数

在Windows R中设置主目录

可能重复:
更改path.expand位置(Win 7)

我想更改path.expand("~/")Windows系统上引用的目录.目前,这默认为"C:/ Users/home/Documents /".怎么改变这个?请注意,这与设置的工作目录不同setwd()

windows directory r

9
推荐指数
1
解决办法
7895
查看次数

如何比较R中的平等环境

我想检查当前环境是否是R中的全局环境.但是,直接比较似乎不适用于环境.做这个的最好方式是什么?

#doesn't work
sys.frame() == .GlobalEnv
Run Code Online (Sandbox Code Playgroud)

environment r frame

9
推荐指数
1
解决办法
525
查看次数

R中的coplot - 如何判断哪个情节是哪个

coplot在R中用来绘制一些条件图:

coplot(var1 ~ var2 | var3, data=dtb, number=5, overlap=.1, panel=function(x,y, col, pch) {idx = order(x); lines(x[idx], predict(loess(y ~ x))[idx], pch = pch, col = col)})
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如何判断哪个图对应于条件变量的哪个"桶" var3

> dput(dtb)
structure(list(var1 = 1:50, var2 = c(50L, 49L, 48L, 47L, 46L, 
45L, 44L, 43L, 42L, 41L, 40L, 39L, 38L, 37L, 36L, 35L, 34L, 33L, 
32L, 31L, 30L, 29L, 28L, 27L, 26L, 25L, 24L, 23L, 22L, 21L, 20L, 
19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, …
Run Code Online (Sandbox Code Playgroud)

plot r loess

9
推荐指数
1
解决办法
9803
查看次数

在R中合并多个data.frame

我想在R中使用merge多个,进行全外连接.为此,我希望做到以下几点:data.framerow.names

x = as.data.frame(t(data.frame(a=10, b=13, c=14)))
y = as.data.frame(t(data.frame(a=1, b=2)))
z = as.data.frame(t(data.frame(a=3, b=4, c=3, d=11)))
res = Reduce(function(a,b) merge(a,b,by="row.names",all=T), list(x,y,z))

Warning message:
In merge.data.frame(a, b, by = "row.names", all = T) :
  column name ‘Row.names’ is duplicated in the result
> res
  Row.names Row.names V1.x V1.y V1
    1         1         a   10    1 NA
    2         2         b   13    2 NA
    3         3         c   14   NA NA
    4         a      <NA>   NA   NA  3
    5         b      <NA>   NA …
Run Code Online (Sandbox Code Playgroud)

merge r dataframe do.call

9
推荐指数
1
解决办法
5741
查看次数

正确的大括号放置在:= data.table中

这是我遇到的问题的一个例子.我误用了还是这个错误?

require(data.table)
x <- data.table(a = 1:4)

# this does not work
x[ , {b = a + 3; `:=`(c = b)}]
# Error in `:=`(c = b) : unused argument(s) (c = b)

# this works fine
x[ ,`:=`(c = a + 3)]
Run Code Online (Sandbox Code Playgroud)

r data.table

9
推荐指数
1
解决办法
1085
查看次数

RSelenium中的下拉框

如何与下拉框进行交互RSelenium?特别是,我可以选择使用下拉框findElement但是如何选择它的选项?

r selenium-webdriver rselenium

9
推荐指数
1
解决办法
4672
查看次数