R 使用sapply的不可恢复错误

R 使用sapply的不可恢复错误,r,R,我有一种情况,我正在将数据从字符转换为整数。然而,在一台机器上,相同的代码产生的结果与在另一台机器上不同,我不知道为什么。下面是一个例子: df <- data.frame( a = "1", b = "2", c = "3", stringsAsFactors = FALSE ) 远程:R3.2.4,Ubuntu 12.04 R version 3.2.4 (2016-03-10) Platform: x86_64-pc-linux-gnu (64-bit) Running

我有一种情况,我正在将数据从字符转换为整数。然而,在一台机器上,相同的代码产生的结果与在另一台机器上不同,我不知道为什么。下面是一个例子:

df <- data.frame(
  a = "1", b = "2", c = "3", 
  stringsAsFactors = FALSE
)
远程:R3.2.4,Ubuntu 12.04

R version 3.2.4 (2016-03-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)

locale:
 [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C         LC_TIME=C            LC_COLLATE=C        
 [5] LC_MONETARY=C        LC_MESSAGES=C        LC_PAPER=C           LC_NAME=C           
 [9] LC_ADDRESS=C         LC_TELEPHONE=C       LC_MEASUREMENT=C     LC_IDENTIFICATION=C 

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] dplyr_0.4.3          tidyr_0.4.1          data.table_1.9.6    
[4] RMySQL_0.9-3         DBI_0.3.1           

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.3      codetools_0.2-14 psych_1.4.8.11   foreach_1.4.2    assertthat_0.1  
 [6] plyr_1.8.1       chron_2.3-47     R6_2.0.1         magrittr_1.5     lazyeval_0.1.10 
[11] doParallel_1.0.8 iterators_1.0.7  tools_3.2.4      yaml_2.1.13      parallel_3.2.4 

想法?

至少可以说两个R版本是什么,这样其他人(理论上)就可以测试它了?@joran说得对。更新!在mine、Windows7、R3.0.3上按预期工作。。。有可能是你在另一台机器上犯了错误吗?@Joe远程机器从git repo提取数据,因此根本不可能。添加两台机器的
sessionInfo
输出。同时检查
sapply
as.integer
的定义是否(大致)相同。我的猜测是,远程机器正在加载一些程序包/代码,这些程序包/代码会破坏其中一个/两个功能。
df[,c("a","b")] <- sapply(df[,c("a","b")], as.integer)
str(df)
'data.frame':   1 obs. of  3 variables:
 $ a: chr "1"
 $ b: chr "2"
 $ c: chr "3"
R version 3.2.2 (2015-08-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 15.10

locale:
 [1] LC_CTYPE=C                 LC_NUMERIC=C               LC_TIME=C
 [4] LC_COLLATE=C               LC_MONETARY=C              LC_MESSAGES=en_CA.UTF-8
 [7] LC_PAPER=en_CA.UTF-8       LC_NAME=C                  LC_ADDRESS=C
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages: 
[1] dplyr_0.4.3          tidyr_0.4.1          data.table_1.9.6    
[4] RMySQL_0.9-3         DBI_0.3.1  

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.3       codetools_0.2-14  psych_1.5.8       foreach_1.4.3
 [5] assertthat_0.1    plyr_1.8.3        chron_2.3-47      R6_2.1.2
 [9] magrittr_1.5      lazyeval_0.1.10   doParallel_1.0.10 iterators_1.0.8
[13] tools_3.2.2       yaml_2.1.13       parallel_3.2.2    mnormt_1.5-3
R version 3.2.4 (2016-03-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)

locale:
 [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C         LC_TIME=C            LC_COLLATE=C        
 [5] LC_MONETARY=C        LC_MESSAGES=C        LC_PAPER=C           LC_NAME=C           
 [9] LC_ADDRESS=C         LC_TELEPHONE=C       LC_MEASUREMENT=C     LC_IDENTIFICATION=C 

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] dplyr_0.4.3          tidyr_0.4.1          data.table_1.9.6    
[4] RMySQL_0.9-3         DBI_0.3.1           

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.3      codetools_0.2-14 psych_1.4.8.11   foreach_1.4.2    assertthat_0.1  
 [6] plyr_1.8.1       chron_2.3-47     R6_2.0.1         magrittr_1.5     lazyeval_0.1.10 
[11] doParallel_1.0.8 iterators_1.0.7  tools_3.2.4      yaml_2.1.13      parallel_3.2.4