加载splitstackshape/data.frame和tidyr/dplyr时运行cSplit时出错
问题是,当我在data.frame之后加载dplyr时,会收到以下消息:加载splitstackshape/data.frame和tidyr/dplyr时运行cSplit时出错,r,dataframe,dplyr,corruption,splitstackshape,R,Dataframe,Dplyr,Corruption,Splitstackshape,问题是,当我在data.frame之后加载dplyr时,会收到以下消息: Attaching package: ‘dplyr’ The following objects are masked from ‘package:data.table’: between, last The following objects are masked from ‘package:stats’: filter, lag The following objects are masked
Attaching package: ‘dplyr’
The following objects are masked from ‘package:data.table’:
between, last
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
然后,当我尝试使用cSplit时:
test <- cSplit(testdf, "Registrar", "/", direction = "long")
我尝试过各种排列方式-只有在同时加载data.frame和dplyr(按任意顺序)时才会发生此错误,并且在不加载dplyr或从不加载它的情况下重新启动R会使cSplit正常工作
但我需要能够同时使用这两种方法,分离dplyr也没有帮助(只会抛出缺少的dplyr错误)
我看到了,但他们似乎得出了数据被破坏的结论。这似乎是因为如果我在玩具数据集上运行
Name <- "Bo / Ashley"
Date <- "2015-02-04"
testdf2 <- data.frame(Name, Date)
testtoy <- cSplit(testdf2, "Name", "/", direction = "long")
Name我还没有更新“splitstackshape”中的函数来处理tbl_df
对象。因此,当前的解决方法是在链中添加data.frame
比较:
library(splitstackshape)
library(dplyr)
CT <- tbl_df(head(concat.test))
CT %>% cSplit("Likes")
# Error in `[.tbl_df`(indt, , splitCols, with = FALSE) :
# unused argument (with = FALSE)
CT %>% data.frame %>% cSplit("Likes")
# Name Siblings Hates Likes_1 Likes_2 Likes_3 Likes_4 Likes_5
# 1: Boyd Reynolds , Albert , Ortega 2;4; 1 2 4 5 6
# 2: Rufus Cohen , Bert , Montgomery 1;2;3;4; 1 2 4 5 6
# 3: Dana Pierce 2; 1 2 4 5 6
# 4: Carole Colon , Michelle , Ballard 1;4; 1 2 4 5 6
# 5: Ramona Snyder , Joann , 1;2;3; 1 2 5 6 NA
# 6: Kelley James , Roxanne , 1;4; 1 2 5 6 NA
当然,如果有人创建一个pull请求来解决这个问题,我会非常乐意进行相关的更新:-)我在type.convert(unlist(x,use.names=FALSE))中的数据集error中得到一个不同的错误:第一个参数必须是模式字符
,尽管我在read.csv
中使用了stringsafactors=FALSE
,设置type.convert=FALSE
有效,但它也给出了数值因子索引,而不是字符向量。i、 e.测试hmmm。。。现在我觉得我的例子没有代表性。如果我在csv导入上设置StringsAsAffactors=FALSE,并删除第一列(不在我的主数据集中),那么cSplit可以工作。这确实令人困惑,因为我提供的数据只是我的原始数据,但已通过write.csv和read.csv分流。这很可能是因为您试图在tbl_df
上使用该函数,我还没有为其添加支持。@Ananda哦,我的天哪。就这些吗?我刚刚试着转换回标准的data.frame,结果成功了。这是您建议同时使用dplyr和splitstackshape的方式吗(即在使用SSS函数之前将所有内容转换回标准df)?
Error in `[.tbl_df`(indt, , splitCols, with = FALSE) :
unused argument (with = FALSE)
Name <- "Bo / Ashley"
Date <- "2015-02-04"
testdf2 <- data.frame(Name, Date)
testtoy <- cSplit(testdf2, "Name", "/", direction = "long")
library(splitstackshape)
library(dplyr)
CT <- tbl_df(head(concat.test))
CT %>% cSplit("Likes")
# Error in `[.tbl_df`(indt, , splitCols, with = FALSE) :
# unused argument (with = FALSE)
CT %>% data.frame %>% cSplit("Likes")
# Name Siblings Hates Likes_1 Likes_2 Likes_3 Likes_4 Likes_5
# 1: Boyd Reynolds , Albert , Ortega 2;4; 1 2 4 5 6
# 2: Rufus Cohen , Bert , Montgomery 1;2;3;4; 1 2 4 5 6
# 3: Dana Pierce 2; 1 2 4 5 6
# 4: Carole Colon , Michelle , Ballard 1;4; 1 2 4 5 6
# 5: Ramona Snyder , Joann , 1;2;3; 1 2 5 6 NA
# 6: Kelley James , Roxanne , 1;4; 1 2 5 6 NA
CT2 <- tbl_dt(head(concat.test))
CT2 %>% cSplit("Likes")
# Name Siblings Hates Likes_1 Likes_2 Likes_3 Likes_4 Likes_5
# 1: Boyd Reynolds , Albert , Ortega 2;4; 1 2 4 5 6
# 2: Rufus Cohen , Bert , Montgomery 1;2;3;4; 1 2 4 5 6
# 3: Dana Pierce 2; 1 2 4 5 6
# 4: Carole Colon , Michelle , Ballard 1;4; 1 2 4 5 6
# 5: Ramona Snyder , Joann , 1;2;3; 1 2 5 6 NA
# 6: Kelley James , Roxanne , 1;4; 1 2 5 6 NA