我对 C# .NET 很熟悉,我想从 .NET 的System.Text
库中调用函数,例如.PadLeft()
,string.Format
等。
有谁知道这是可能的吗?
目前,正如其他人所提到的,从 R 调用 .NET 代码并不容易。使用rcom
包可能是可行的,但是 R 程序员和 C# 程序员的交集很小,所以很少有人尝试过。
如果您愿意调整您的技术堆栈,则有一些选择。
MATLAB 具有出色的 .NET 集成,可以做 R 可以做的大部分事情。
rJava
R 通过包有很好的 Java 集成。
如果您对纯 R 解决方案感到满意,那么该stringr
软件包使字符串处理变得非常轻松。 stringr::str_pad
与C#的string.PadLeft
方法相同。 sprintf
, format
, formatC
, 和prettyNum
from base R 提供了多种格式化数字的方法。该scales
软件包还具有几个格式化功能。
我知道这篇文章已经存在了一段时间,但由于在 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 字符串操作的工具。
R 和 .NET 没有任何关系。这意味着这是不容易的。
您应该简单地学习在 R 中使用的正确方法。