当前位置:  开发笔记 > 编程语言 > 正文

从许多数据框列中提取最后一个字(R)

如何解决《从许多数据框列中提取最后一个字(R)》经验,为你挑选了1个好方法。

我有一个包含3列的数据框.数据看起来像这样

V1                V2               V3
Auto = Chevy      Engine = V6      Trans = Auto
Auto = Chevy      Engine = V8      Trans = Manual
Auto = Chevy      Engine = V10     Trans = Manual

我希望数据框看起来像这样:

Auto       Engine  Trans
Chevy      V6      Auto
Chevy      V8      Manual
Chevy      V10     Manual

换句话说,检索"="之后的最后一个字符串,并获取列中的第一个值,并使其成为列标题.或者只是检索"="之后的最后一个单词并将其替换为列而不添加新列的方法.

这可以在R中完成吗?非常感谢!



1> JWLM..:

好吧,如果你不介意只使用旧式(前哈德利)R,这是一个解决方案:

> x <- as.data.frame(list(c('Auto = Chevy', 'Auto = Chevy', 'Auto = Chevy'),
+ c('Engine = V6', 'Engine = V8', 'Engine = V10'),
+ c('Trans = Auto', 'Trans = Manual', 'Trans = Manual')),
+ stringsAsFactors=FALSE)
> values <- lapply(x, gsub, pattern='.*= ', replacement='')
> new.names <- lapply(x, gsub, pattern=' =.*', replacement='')
> new.names <- lapply(new.names, unique)
> names(values) <- new.names
> new.frame <- as.data.frame(values, stringsAsFactors = FALSE)
> new.frame
   Auto Engine  Trans
1 Chevy     V6   Auto
2 Chevy     V8 Manual
3 Chevy    V10 Manual

它不适用于具有许多列的数据框,但它适用于具有许多行的窄数据框.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有