首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在使用grep选择某些变量时,在数据帧中记录/重命名数据

在使用grep选择某些变量时,在数据帧中记录/重命名数据
EN

Stack Overflow用户
提问于 2011-03-29 02:06:53
回答 1查看 1.4K关注 0票数 1

在我的dataframe中,我只选择变量test3-test8。

代码语言:javascript
运行
复制
data[,grep('(test[3-8]+$)',names(data)),]

现在,我想用"1"替换"2"。根据df[ df == "1" ] = "2"的说法,我尝试过:

代码语言:javascript
运行
复制
data[,grep('(test[3-8]+$)',names(data)),][ data[,grep('(test[3-8]+$)',names(data)),] == "1" ] = "2"

那不管用。

[<-.data.frame中的错误(*tmp*,,grep("(^dv_beh_0-9+r)",名称(数据)),:未使用的参数(S) ()

我犯了什么错?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-29 03:04:35

去掉多余的逗号(它们为数据框架指定选项,但没有列出选项),错误就消失了:

代码语言:javascript
运行
复制
dtf <- data.frame(test1=runif(10))
dtf <- cbind(dtf,dtf)
dtf <- cbind(dtf,dtf)
dtf[3,3] <- 1
names(dtf) <- paste("test",seq(ncol(dtf)),sep="")
names.sel <- grep('(test[3-8]+$)',names(dtf))
dtf[,names.sel][ dtf[,names.sel] == 1 ] <- 2
stopifnot(dtf[3,3]==2)

为了证明这就是问题所在,我可以用以下方法重现错误:

代码语言:javascript
运行
复制
data[,names.sel,][ data[,names.sel] == 1 ,] <- 2
Error in `[<-.data.frame`(`*tmp*`, , grep("(test[3-8]+$)", names(data)),  : 
  unused argument(s) ()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5467117

复制
相关文章

相似问题

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