Tag: r xlsx

导入excel与重复的列以数字结尾(r xlsx)

我有一个包含4列的xlsx文件: Thingie1 Thingie1 Thingie2 Thingie2 (我知道这很愚蠢……这是因为我合并了来自2个不同数据库的数据, 1和2表示调查1和调查2之间的差异,并select将其转储到xlsx文件中。 当我使用xlsx包将其导入到R中时,它将列标题更改为: Thingie1 Thingie3 Thingie2 Thingie4 显然,我现实世界中的例子要复杂得多,因此很难确定是什么东西。 我想有这样的东西: Thingie1 Thingie11 Thingie2 Thingie21 现在,我可以通过在Excel中打开文件并在那里更改列来解决这个问题…所以我可以解决我眼前的问题,但我讨厌打破我的工作stream程…有没有办法以更好的方式导入这些数据成R本身?

在R中的read.xlsx之前强制执行Excel工作簿?

我正在使用xlsx包中的read.xlsx()来读取Excel工作簿(.xlsx格式)。 我的工作簿将date存储为函数(例如, =DATE(1900, 1, 1) 1/1/1900 =DATE(1900, 1, 1) ),而不是从1/1/1900至12 1 1/1/1900日(例如1/1/1900或1 )的string或小数天数。 如果工作簿曾被打开/评估过,这对read.xlsx来说不是问题。 但是许多这些工作簿从来没有被打开/评估过(它们是由我的数据提供者生成的,而不是由Excel生成的)。 由于工作簿尚未打开/评估,因此它包含-1而不是自1899-12-31以来的实际小数天数(例如,2001年5月25日的37036)。 我在这里学到了 所以如果我在其中一个(从未打开的)工作簿中读取date,我会得到一列-1,其中read.xlsx解释为read.xlsx (即read.xlsx之前的一天)。 这里有修复吗? 我可以touch一个工作簿来强制评估吗? 有没有一点,我可以在read.xlsx翻转read.xlsx强制评估? 我只看到一个colClasses参数,这似乎不是问题? 我可以避免使用Excel VBA脚本将这些工作簿写入文本吗? 对不起,我不能提供任何可重复的代码,但如果您打开一个Excel工作簿input=Date() ,问题将不存在。

使用R中的循环将数百个数据框导出为xlsx

我在R中创build了数百个dataframe,我想将它们导出到本地位置。 dataframe的所有名称都存储在一个向量中: name.vec<-c('df1','df2','df3','df4','df5','df5') name.vec中的每一个都是一个数据框。 我想要做的是将这些数据框导出为ex​​cel文件,但我不想这样做: library("xlsx") write.xlsx(df1,file ="df1.xlsx") write.xlsx(df2,file ="df2.xlsx") write.xlsx(df3,file ="df3.xlsx") 因为有数百个dataframe,这是乏味和危险的。 我想要一些像下面这样的东西: library('xlsx') for (k in name.vec) { write.xlsx(k,file=paste0(k,'.xlsx')) } 但这是行不通的。 任何人都知道如何做到这一点? 你的时间和知识将深受赞赏。 提前致谢。

无法从R读取.xls

文件:它是一个约100行7列的文件。 XLS扩展(MS Excel 97-2003)。 问题:无法用R通过read.xlsx或read.xlsx2读取文件。 用于尝试读取文件的代码: library(xlsxjars) library(rJava) library(xlsx) excel <- read.xlsx("File.xls",sheetIndex=1,startRow=1,stringsAsFactor=F) 错误提示: 错误.jcall ("RJavaTools","Ljava/lang/object;","invokeMethod",cl, :java.lang.IllegalArgumentException:您的InputStream既不是OLE2stream,也不是OOXMLstream。 PD:为了logging,我试着用read.csv来读取它, read.csv它读取它,但是因为它是一个Excel文件,并且没有用逗号或点隔开,所以R读取它,好像所有东西都在1列中一样。 也许任何人都可以build议通过read.csv读取它的read.csv ?

在R中使用xlsx打开Excel文件时出错

我最近安装了R 3.2.0(Windows 64位)与软件包xlsx ,这取决于rJava和xlsxjars 。 Java 1.8.0_11 64位被安装在机器上。 当我尝试使用read.xlsx()函数时,出现以下关于zipfile的错误: > library(xlsx) Loading required package: rJava Loading required package: xlsxjars > read.xlsx("cameras.xlsx", sheetIndex=1) 错误.jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :java.util.zip.ZipException:无效距离太远 我当然不知道为什么它会试图解压任何东西,除非它是R软件包的一个jar子。 (当我手工做的时候,R软件包解压缩的zip文件就解压缩了。)我已经重新安装了两次,无法在那里发生破坏。 我觉得有一个configuration错误的地方,但我真的难住。 有没有人经历过这个? 这里是包安装消息 > install.packages("xlsx") Installing package into 'C:/Users/ggraham412/Documents/R/win-library/3.2' (as 'lib' is unspecified) also installing the dependencies 'rJava', 'xlsxjars' trying URL 'http://cran.rstudio.com/bin/windows/contrib/3.2/rJava_0.9-6.zip' Content type 'application/zip' length […]

如果公式从R到excel,openxlsx写作

我想从R导出excel数据框有两列,我想用excel填充公式,以便用户以后可以更改阈值。 我的问题是,如何将如下IF(C2> 4;“YES”;“NO”)的公式导出到excel的新列的每个单元格中。 R码: library(openxlsx) library(dplyr) export_df<- mtcars %>% tibble::rownames_to_column(var="carname") # Formulas in EXCEL IF(C>4; "YES";"NO") IF(E>100; "YES";"NO") export_df$many_cyl <- paste(paste(paste0(paste0("IF(C" ,seq(2,nrow(export_df)+1 ,1))," > 4")," 'Yes' ", sep=";")," 'No') ", sep=";") export_df$fast_car <- paste(paste(paste0(paste0("IF(E" ,seq(2,nrow(export_df)+1,1))," > 100")," 'Yes' ", sep=";")," 'No')", sep=";") class(export_df$many_cyl) <- c(class(export_df$many_cyl), "formula") class(export_df$fast_Car) <- c(class(export_df$fast_car), "formula") openxlsx::addWorksheet(wb,sheetName ="mtcars" ) openxlsx::writeData(wb,"mtcars",export_df ) […]

read.xlsx()在R中引发错误

我已经安装了xlsx和依赖包。 另外我下载了64位的Java,需要安装相关的rjava包。 现在,当我尝试使用read.xlsx我得到以下错误。 安装64位Java后,我可以成功加载包,但运行read.xlsx出现错误 > library(xlsx) Loading required package: rJava Loading required package: xlsxjars > read.xlsx("ngas.xlsx",sheetIndex = 1) Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : java.util.zip.ZipException: invalid code — missing end-of-block

r – 来自.xlsx的read.xlsx,具有未知数量的工作表

假设我有一个excel文件,我想用read.xlsx函数读取到R read.xlsx 。 文件由电子表格组成,其中我不知道的数量(有200个这样的文件,所以手动检查张数将是巨大的痛苦)。 每个电子表格都按照适当的数据框架进行组织。 我希望将这些电子表格放在另一个上面。 我写了这样的东西: columnsILike <- c(1,40) for(i in 1:numberOfSheets){ dfInd <- read.xlsx("myfile.xlsx", i, # number of sheet colIndex=columnsILike, endRow=201, startRow=2, header=F) PreviousEmptyDataFrame <- rbind(PreviousEmptyDataFrame, dfInd) } write.csv(PreviousEmptyDataFrame, "data.csv") 问题是,我怎么事先知道张数?

使用write.xlsx用R软件包xlsxreplace现有的工作表

我正在使用软件包xlsx版本:0.5.7date:2014-08-01。 在R版本3.0.1(2013-05-16) – “好运”平台:i386-w64-mingw32 / i386(32位)。 我有一个xlsx文件至less2张(说A和B)。 我需要从A读取数据,编辑它们并将它们保存在B中。这必须在定期的基础上完成。 我可以用read.xlsx从A读取数据。 编辑完数据框后,我想将其保存在同一个xlsx文件的现有工作表B中。 我尝试这一行 write.xlsx(down, paste0(root,'/registration reports/registration complete_WK.xlsx'), sheet="data_final", col.names=T, row.names=F, append=T, showNA=F) 但它给我这个错误: 错误.jcall(wb, "Lorg/apache/poi/ss/usermodel/Sheet;", "createSheet", :java.lang.IllegalArgumentException:工作簿已经包含这个名字的一个表 我真的需要多次replace现有的工作表。 我怎样才能做到这一点? 谢谢,菲利波

read.xlsx读取date错误,如果在列中没有date

xlsx软件包错误地读取date。 我已经阅读了所有顶级的类似Q,并且在互联网上有了一名侦察员,但是如果列中存在非date数据,我不能在原点发生变化的情况下find这种特定的行为。 我有一个很小的Excel电子表格,你可以从Dropbox中获得: https://www.dropbox.com/s/872q9mzb5uzukws/test.xlsx 它有三行,两列。 首先是一个date,第二个是一个数字。 第三行在date栏中有“总计”。 如果我用read.xlsx读取前两行,并告诉它第一列是date,那么这个工作: read.xlsx("./test.xlsx",head=FALSE,1,colClasses=c("Date","integer"),endRow=2) X1 X2 1 2014-06-29 49 2 2014-06-30 46 这些确实是电子表格中的date。 如果我尝试阅读所有三行,出现了一些问题: read.xlsx("./test.xlsx",head=FALSE,1,colClasses=c("Date","integer")) X1 X2 1 2084-06-30 49 2 2084-07-01 46 3 <NA> 89251 Warning message: In as.POSIXlt.Date(x) : NAs introduced by coercion 如果我尝试阅读整数我得到不同的整数: > read.xlsx("./test.xlsx",head=FALSE,1,colClasses=c("integer","integer"),endRow=2) X1 X2 1 16250 49 2 16251 46 > read.xlsx("./test.xlsx",head=FALSE,1,colClasses=c("integer","integer")) X1 X2 […]