首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R与java之间的数据类型转换

问R与java之间的数据类型转换
EN

Stack Overflow用户
提问于 2013-12-09 03:01:23
回答 1查看 946关注 0票数 0

我想在R中调用java,所以最重要的是如何在R和java之间转换数据类型,我知道'.jnew‘'new’可以创建一个java对象,但是在调用java函数之后,如何将返回值转换为R数据类型?

代码语言:javascript
复制
j_d2 = .jnew("java.util.Date",'2011-1-1')

例如,如何在R中将j_d2转换为POSIXCT类型感谢任何帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-09 05:36:25

R不知道如何转换其他通过JNI映射的原语(当使用.jcall时)。您需要提供自己的转换,例如使用as.POSIXct(j_d2$toString,format=“.”)解析日期项目的字符串表示形式。看到了吗?格式规范的时间。

例如,在我的区域设置中,我使用以下格式:

代码语言:javascript
复制
> library(rJava)
> .jinit()

> j_d2 <- str(.jnew("java/util/Date"))
> j_d2$toLocaleString()
[1] "8-Dec-2013 9:05:00 PM"
> as.POSIXct(j_d2$toLocaleString(), format="%e-%b-%Y %X %p")
[1] "2013-12-08 09:05:00 PST"

如果需要转换大量日期,则字符串转换效率很低。或者,您可以使用Simon描述的这个方法:

代码语言:javascript
复制
> d <- .jnew("java/util/Date","2013/12/08 08:00")
> d
[1] "Java-Object{Sun Dec 08 08:00:00 PST 2013}"

> # Java uses milliseconds, R expects seconds
> as.POSIXct(.jcall(d,"J","getTime")/1000, origin = "1960-01-01")
[1] "2003-12-08 08:00:00 PST"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20462383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档