相关疑难解决方法(0)

重新排序因子会产生不同的结果,具体取决于加载的包

我想创建一个条形图,其中条形按高度排序,而不是按类别按字母顺序排列.当我加载的唯一包是ggplot2时,这工作正常.但是,当我加载一些包并运行创建,排序和绘制数据框的相同代码时,条形图已经恢复为按字母顺序排序.

我每次使用都检查了数据帧str(),结果发现数据框的属性现在不同了,即使我每次都运行相同的代码.

我的代码和输出如下所示.任何人都可以解释不同的行为吗?为什么加载一些显然不相关的包(在我所使用的所有函数似乎都没有被新加载的包掩盖的意义上无关)会改变运行transform()函数的结果?

案例1:刚加载ggplot2

library(ggplot2)

group = c("C","F","D","B","A","E")
num = c(12,11,7,7,2,1)
data = data.frame(group,num)
data1 = transform(data, group=reorder(group,-num))

> str(data1)
'data.frame':   6 obs. of  2 variables:
 $ group: Factor w/ 6 levels "C","F","B","D",..: 1 2 4 3 5 6
  ..- attr(*, "scores")= num [1:6(1d)] -2 -7 -12 -7 -1 -11
  .. ..- attr(*, "dimnames")=List of 1
  .. .. ..$ : chr  "A" "B" "C" "D" ...
 $ num  : num  12 11 7 7 2 1 …
Run Code Online (Sandbox Code Playgroud)

namespaces r masking operator-precedence

18
推荐指数
1
解决办法
870
查看次数

R在write.csv()上为data.table崩溃

参考Crashing R在特定数据集上调用`write.table`这个问题,我可以通过在一个会话中保存一个大的数据,在Windows-64bit上几乎 "可靠地"崩溃64位.当我说差不多时,一旦它发生(当向IT中的一个人展示崩溃时!)我得到了消息R --vanilladata.table

Error in .External2(C_writetable, x, file, nrow(x), p, rnames, sep, eol,  :
  'getCharCE' must be called on a CHARSXP
Run Code Online (Sandbox Code Playgroud)

在上述问题中引用.

要崩溃RI只需要保存(DT,"datatablefile.RData")

然后在另一个可能的R会议中--vanilla,我只是说......

load("datatablefile.RData")
write.csv(DT, file='datatablefile.csv')
Run Code Online (Sandbox Code Playgroud)

然后会在一两分钟后崩溃.请特别注意,如果我说它不会崩溃

load("datatablefile.RData")
library(data.table)
write.csv(DT, file='datatablefile.csv')
Run Code Online (Sandbox Code Playgroud)

当我说出类似的话

library(data.table)
N <- 1000
DT <- data.table(id=1:N, name=sample(letters, N, replace=TRUE))
save(DT, file='dttest.RData')
Run Code Online (Sandbox Code Playgroud)

然后在另一个会话中

load('dttest.RData')
write.csv(DT, 'dttest.csv')
Run Code Online (Sandbox Code Playgroud)

我没有崩溃......

有可能与之相关的建议rbindlist(),所以

library(data.table)
N <- 10000000
DT1 <- data.table(id=1:N, name=sample(letters, N, replace=TRUE))
DT2 <- data.table(id=1:N, …
Run Code Online (Sandbox Code Playgroud)

windows r data.table

5
推荐指数
0
解决办法
1694
查看次数