有没有办法从R中调用.NET的字符串库?

时间:2013-02-04 12:39:44

标签: c# .net r

我对C#.NET非常熟悉,我想调用.NET的System.Text库中的函数,例如.PadLeft()string.Format等。

有谁知道这是可能的吗?

3 个答案:

答案 0 :(得分:4)

目前,正如其他人所提到的,从R调用.NET代码并不容易。使用rcommay be viable,但是R程序员和C#程序员的交集是相当的很少,很少有人尝试过。

如果您愿意调整技术堆栈,有一些选择。

  • MATLAB具有出色的.NET集成功能,可以完成R可以做的大部分工作。

  • R通过rJava包进行了非常好的Java集成。

如果您对纯R解决方案感到满意,那么stringr包使字符串处理变得非常轻松。 stringr::str_pad与C#的string.PadLeft方法相同。来自基地R的sprintfformatformatCprettyNum提供了多种格式化数字的方式。 scales包还有几个格式化功能。

答案 1 :(得分:4)

我知道这篇文章已经存在了一段时间,但是因为在StackOverflow上搜索答案是一个持续的事情,我想我会提出另一个选择。

软件包rClr可从https://r2clr.codeplex.com/获得,很快就会迁移到https://rclr.codeplex.com/。可以调用任意.NET代码,包括字符串操作:

library(rClr)
clrCallStatic('System.String', 'Format', 'Hello, the number is {0}', 42L)
## [1] "Hello, the number is 42"

但是,由于字符串及其数组是有意透明地转换为R字符向量,因此不容易获得PadLeft等实例方法。使用静态方法的助手类可以解决问题。如果有兴趣,我会考虑在包中添加.NET字符串操作功能。

答案 2 :(得分:1)

R和.NET没有任何关系。这意味着这是不可能的。

您应该只是学习在R中使用的正确方法。