我试图将字符串向量中的每个对象都转换为引用类。假设我的参考班是:
myrefclass <- function(str) {
methods <- list()
methods$cnt <- function() {
return(str_length(str))
}
methods
}
我尝试转换以下向量(尽管没有成功):
v1 <- c("ABC", "D", "FGHI")
v2 <- c(ABC="ABC", D="D", FGHI="FGHI")
然后我尝试将引用类应用于向量的每个元素:
res1 <- sapply(v1, myrefclass)
res2 <- sapply(v2, myrefclass)
然后我认为我可以按以下方式使用它(,但遗憾的是它不起作用):
> res1["ABC"]$cnt
NULL
> res2["ABC"]$cnt
NULL
如何创建引用类的向量并访问其方法?
注意#1:我更喜欢base-R解决方案,但是 看看哪些软件包可能有帮助
注意#2:我正在寻找一种动态解决方案。为了说明这一点, 假设此问题的扩展将使用
res1
或res2
查找所有具有$cnt=3
的字符串。因此,访问字符串res1$ABC$cnt
中的内容将无法正常运行,因为您不知道ABC
在v1
或v2
(以您认为合适为准)。
答案 0 :(得分:0)
找出答案。我的问题是我不应该创建引用类的向量,因为它似乎弄乱了我的对象及其对应的方法,我应该创建了一个列表:
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
// root elements
Document doc = docBuilder.newDocument();
然后要查找特定字符串的长度:
v2 <- list(ABC="ABC", D="D", FGHI="FGHI")
res2 <- lapply(v2, myrefclass)
Voila!