2

我有一个包含条目的 txt 文件

indexUrl=http://192.168.2.105:9200
jarFilePath = /home/soumy/lib

如何从 R 读取此文件并获取 的值jarFilePath

我需要这个来设置.jaddClassPath()...由于 Windows 和 linux 中的斜杠不同,我无法将 jar 复制到类路径

在linux中我想使用

.jaddClassPath(dir("target/mavenLib", full.names=TRUE ))

但在窗户

.jaddClassPath(dir("target\\mavenLib", full.names=TRUE ))

所以想从属性文件中读取 jar 的位置!!!如果还有其他选择,请告诉我

4

2 回答 2

5

截至 2016 年 9 月,CRAN 具有包属性

=正确处理属性值(但不处理第一个=符号后的空格)。

例子:

属性文件的内容/tmp/my.properties

host=123.22.22.1
port=798
user=someone
pass=a=b

代码:

install.packages("properties")
library(properties)

myProps <- read.properties("/tmp/my.properties")

然后您可以访问诸如等的属性myProps$host,特别myProps$passa=b如预期的那样。

于 2016-09-07T18:37:22.363 回答
4

我不知道一个包是否提供了一个特定的接口。

如果没有,我将首先使用 read.table 将数据加载到数据框中:

myProp <- read.table("path/to/file/filename.txt, header=FALSE, sep="=", row.names=1, strip.white=TRUE, na.strings="NA", stringsAsFactors=FALSE)

sep="="显然是分隔符,这将很好地分隔您的属性名称和值。

row.names=1说第一列包含您的行名,因此您可以通过这种方式索引您的数据属性以检索您想要的每个属性。例如:myProp["jarFilePath", 2]将返回"/home/soumy/lib".

strip.white=TRUE将去除您可能不关心的前导和尾随空格。

可以方便地将加载的数据帧转换为命名向量,以便以更简洁的方式检索属性值:myPropVec <- setNames(myProp[[2]], myProp[[1]]).

然后从名称中检索属性值:myPropVec["jarFilePath"]也会返回"/home/soumy/lib"

于 2012-12-03T20:33:01.540 回答