我对C#.NET非常熟悉,我想调用.NET的System.Text
库中的函数,例如.PadLeft()
,string.Format
等。
有谁知道这是可能的吗?
答案 0 :(得分:4)
目前,正如其他人所提到的,从R调用.NET代码并不容易。使用rcom
包may be viable,但是R程序员和C#程序员的交集是相当的很少,很少有人尝试过。
如果您愿意调整技术堆栈,有一些选择。
MATLAB具有出色的.NET集成功能,可以完成R可以做的大部分工作。
R通过rJava
包进行了非常好的Java集成。
如果您对纯R解决方案感到满意,那么stringr
包使字符串处理变得非常轻松。 stringr::str_pad
与C#的string.PadLeft
方法相同。来自基地R的sprintf
,format
,formatC
和prettyNum
提供了多种格式化数字的方式。 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中使用的正确方法。