首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >变量对的pmax ()循环

变量对的pmax ()循环
EN

Stack Overflow用户
提问于 2013-04-26 10:32:53
回答 1查看 169关注 0票数 1

我有以下数据:

代码语言:javascript
运行
复制
varnames<-c( "aR.0", "aL.0", "aR.1", "aL.1", "aR.3", "aL.3")

a <-matrix (c(1,2,3,4, 5, 6), 2, 6)

colnames (a)<-varnames

df<-as.data.frame (a)


 a
    aR.0 aL.0 aR.1 aL.1 aR.3 aL.3
[1,]    1    3    5    1    3    5
[2,]    2    4    6    2    4    6

我需要在dataframe中添加包含变量对最大值的向量,其中有:

  • 类似的基("a“和"a")
  • 类似后缀("0“和"0”、"1“和"1”、"3“和"3")
  • 但后缀(R和L)前的最后几个字母不同。

在几行代码中,如下所示:

代码语言:javascript
运行
复制
 df$max.a.0 <- pmax(df [,"aR.0"], df[,"aL.0"])
 df$max.a.1<-pmax(df [,"aR.1"], df[,"aL.1"])
 df$max.a.3<- pmax(df [,"aR.3"], df[,"aL.3"])

df
    aR.0 aL.0 aR.1 aL.1 aR.3 aL.3 max.a.0 max.a.1 max.a.3
 1    1    3    5    1    3    5       3       5       5
 2    2    4    6    2    4    6       4       6       6

如何自动执行此任务?我绞尽脑汁想写一个循环,但没有成功。

先谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-26 11:29:43

好吧,具体情况取决于您的dataframe的特定属性,从您给出的示例中可以看出这一点并不明显。例如,您指定基应该是相似的,但是只有一个基"a“。也不清楚这些变量的顺序是否总是相同的。

无论如何,对于当前的示例,以下方法可能有效:

代码语言:javascript
运行
复制
df1 <- df[,grep("aR\\..",colnames(df))]
df2 <- df[,grep("aL\\..",colnames(df))]

pmax(df1,df2)

您可以通过以下方法将相同的逻辑扩展到一般情况:(1)使正则表达式更加复杂(例如,包含其他基)和(2),在必要时对列向量进行排序,以实现pmax()函数所需的相同顺序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16234328

复制
相关文章

相似问题

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