我有一个包含分类信息的大型数据框。这是一个例子:
> d <- data.frame(x = c(1,2,3,4), classification = c("cl1.scl1", "cl2", "cl3-bla", "cl4.subclass2"))
> d
x classification
1 1 cl1.scl1
2 2 cl2
3 3 cl3-bla
4 4 cl4.subclass2
在进行任何进一步处理之前,我需要聚合分类信息,这意味着我必须用“.”分割分类字符串。并获取第一个令牌。这是我需要的结果:
> d
x classification
1 1 cl1
2 2 cl2
3 3 cl3-bla
4 4 cl4
目前我正在计算如下:
d$classification = unlist(lapply(d$classification, function (x) strsplit(as.character(x), ".", fixed=TRUE)[[1]][1]))
这可行,但我花了很长时间才弄清楚这一点。我认为有一个更优雅的解决方案,但我可能错过了。有什么建议么?谢谢!
一个稍微短一点的解决方案是
sapply(strsplit(as.character(d$class), "\\."), `[`, 1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)