首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换数据帧列中的值

替换数据帧列中的值
EN

Stack Overflow用户
提问于 2014-09-18 13:22:19
回答 3查看 157关注 0票数 0

给定具有唯一值的列的大型数据帧。

(一,二,三,四,五,六,七,八)

我想替换其中的一些价值。例如,“1”的每一处都应替换为“1”和

代码语言:javascript
复制
'FOUR' -> '2SQUARED'
'FIVE' -> '5'
'EIGHT' -> '2CUBED'

其他价值应该保持原样。

如果/否则将永远运行。如何应用矢量化的解决方案?匹配是一条很好的路吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-18 15:48:31

使用@rnso数据集

代码语言:javascript
复制
library(plyr)
transform(data, vals = mapvalues(vals, 
          c('ONE', 'FOUR', 'FIVE', 'EIGHT'),
          c('1','2SQUARED', '5', '2CUBED'))) 
#       vals
# 1        1
# 2      TWO
# 3    THREE
# 4 2SQUARED
# 5        5
# 6      SIX
# 7    SEVEN
# 8   2CUBED
票数 0
EN

Stack Overflow用户

发布于 2014-09-18 13:43:12

试着使用基数R进行以下操作:

代码语言:javascript
复制
data = structure(list(vals = structure(c(4L, 8L, 7L, 3L, 2L, 6L, 5L, 
1L), .Label = c("EIGHT", "FIVE", "FOUR", "ONE", "SEVEN", "SIX", 
"THREE", "TWO"), class = "factor")), .Names = "vals", class = "data.frame", row.names = c(NA, 
-8L))

initial = c('ONE', 'FOUR', 'FIVE', 'EIGHT')
final = c('1','2SQUARED', '5', '2CUBED')

myfn = function(ddf, init, fin){
    refdf = data.frame(init,fin)
    ddf$new = refdf[match(ddf$vals, init), 'fin']
    ddf$new = as.character(ddf$new)
    ndx = which(is.na(ddf$new))
    ddf$new[ndx]= as.character(ddf$vals[ndx])
    ddf
}

myfn(data, initial, final)

   vals      new
1   ONE        1
2   TWO      TWO
3 THREE    THREE
4  FOUR 2SQUARED
5  FIVE        5
6   SIX      SIX
7 SEVEN    SEVEN
8 EIGHT   2CUBED
> 
票数 0
EN

Stack Overflow用户

发布于 2014-09-18 17:00:22

您的专栏可能是一个factor。试试看。使用rnso的data,我建议您首先创建两个要更改的值向量和要更改为

代码语言:javascript
复制
from <- c("FOUR", "FIVE", "EIGHT")
to <- c("2SQUARED", "5", "2CUBED")

然后将这些因素替换为

代码语言:javascript
复制
with(data, levels(vals)[match(from, levels(vals))] <- to)

这给了我们

代码语言:javascript
复制
data
#       vals
# 1      ONE
# 2      TWO
# 3    THREE
# 4 2SQUARED
# 5        5
# 6      SIX
# 7    SEVEN
# 8   2CUBED
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25913894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档