- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 dplyr
将数据框与数据表连接起来功能 inner_join()
.这是我的代码。
library(data.table)
library(dplyr)
DF <- data.frame(x = rep( c("a","b","c"), each=3),
y = rep( c(1,3,6), 3))
DT <- data.table(x = rep( c("a","b","c"), each=3),
y = rep( c(1,3,6), 3))
W <- data.frame(x = c("b","c","d"),
foo = c(4,2,9))
inner_join()
按预期工作。
inner_join(DF,W)
Joining by: "x"
x y foo
1 b 1 4
2 b 3 4
3 b 6 4
4 c 1 2
5 c 3 2
6 c 6 2
inner_join()
给出意想不到的结果。
inner_join(DT,W)
Joining by: "x"
x y foo
1 b 1 2
2 b 3 2
3 b 6 2
4 c 1 9
5 c 3 9
6 c 6 9
sessionInfo()
上使用 RStudio 版本 0.98.1056是
R version 3.1.1 (2014-07-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] dplyr_0.2 data.table_1.9.2
loaded via a namespace (and not attached):
[1] assertthat_0.1 parallel_3.1.1 plyr_1.8.1 Rcpp_0.11.2 reshape2_1.4
[6] stringr_0.6.2 tools_3.1.1
最佳答案
David 提到的 bug in data.table
factor 列和 character 列之间的值是 true,但仍未修复。但不幸的是它是一个 红鲱鱼并且是 不是 你烦恼的根源。
但是,这是因为没有 inner_join.data.table
dplyr v0.2
中的方法,因此它调用 inner_join.data.frame
方法(因为 data.table
也是 data.frame
)。
require(dplyr) ## 0.2 CRAN
require(data.table) ## 1.9.2
methods(inner_join)
# [1] inner_join.data.frame* inner_join.tbl_df* inner_join.tbl_dt*
# [4] inner_join.tbl_sql*
inner_join(DF, W)
inner_join(DT, W)
dplyr's
内部连接实现。
DF
和
W
两者都有
x
作为因子和
DT
有
x
作为字符列。
DF$x
来重现此错误。字符类型:
DF$x = as.character(DF$x)
inner_join(DF, W)
# Joining by: "x"
# x y foo
# 1 b 1 2
# 2 b 3 2
# 3 b 6 2
# 4 c 1 9
# 5 c 3 9
# 6 c 6 9
dplyr
的开发版中已经修复了.
关于r - 为什么inner_join 对data.table 的行为不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25963324/
尝试根据多个条件和时间间隔条件加入 2 个数据帧,如下例所示: # two sample dataframes with time intervals df1 % mutate(t1 = inte
我继承了一个MySQL数据库,其中有一个表如下: mysql> describe stock_groups; +--------+--------------+------+-----+-------
我有两个格式如下的数据集: df1 #> Artist Album Year #> 1 Beatles Sgt. Pepper's 1967 #>
我有两个相等的数据框 a inner_join(df1, df2) Joining by: c("a", "b", "c") a b c 1 1 3 a 2 2 2 b 不加入 NA .但是,我
我的 ClassSelector 数据库中有两个表: 学生 学生编号 |学生姓名 |家乡 类 类(class)编号 |类名 |描述 我正在尝试编写一个程序,该程序将采用用户输入的 student_id
当我不使用标准的“col1”=“col2”连接时,我很难让 dplyr 连接正常工作。这是我所经历的两个例子。 首先: library(dplyr) tableA % select(col1, c
SELECT core_student.STUDENT_ID, core_student.FIRST_NAME, core_student.LAST_NAME FROM `core_student`
在 R 中,我如何才能 inner_join多个 tbls或 data.frame s 有效吗? 例如: devtools::install_github("rstudio/EDAWR") libra
我是一名优秀的程序员,十分优秀!