重新编码/重命名数据框中的数据,而 grep 用于选择某些变量

发布于 2024-10-26 22:16:55 字数 486 浏览 2 评论 0原文

在我的数据框中,我仅选择变量 test3-test8

data[,grep('(test[3-8]+$)',names(data)),]

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

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)", 名称中出现错误(data)), : 未使用的参数 ()

我的错误是什么?

In my dataframe I select only variables test3-test8

data[,grep('(test[3-8]+$)',names(data)),]

Now I want to replace "1" with "2". According to df[ df == "1" ] = "2" I tried:

data[,grep('(test[3-8]+$)',names(data)),][ data[,grep('(test[3-8]+$)',names(data)),] == "1" ] = "2"

That didn't work.

Error in [<-.data.frame(*tmp*, , grep("(^dv_beh_[0-9]+r)", names(data)), : unused argument(s) ()

What is my mistake?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遮了一弯 2024-11-02 22:16:55

消除多余的逗号(它们指定数据框的选项,但您没有列出任何选项),错误就会消失:

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)

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

data[,names.sel,][ data[,names.sel] == 1 ,] <- 2
Error in `[<-.data.frame`(`*tmp*`, , grep("(test[3-8]+$)", names(data)),  : 
  unused argument(s) ()

Eliminate the superfluous commas (which are specifying options to the data frame, but you list no options) and the error goes away:

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)

And to prove that that's the problem, I can reproduce the error with:

data[,names.sel,][ data[,names.sel] == 1 ,] <- 2
Error in `[<-.data.frame`(`*tmp*`, , grep("(test[3-8]+$)", names(data)),  : 
  unused argument(s) ()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文