【问题标题】:R: repeat a for loop which uses two variables in a dataset for the rest of the pairs of variables in the datasetR:重复一个 for 循环,该循环使用数据集中的两个变量来处理数据集中的其余变量对
【发布时间】:2017-06-18 17:15:40
【问题描述】:

我有一个包含许多变量/列对的数据集,例如a1a2b1b2c1c3 等。

我在R 中编写了一个for 循环,它使用a1a2 列创建了一个新变量a_new(具体来说,我在for 循环之间使用了if else 函数) .

我想对其余的变量/列做同样的事情,从b1b2c1c2等创建列b_newc_new等而不用写100个for循环,所以我可能需要使用其中一个apply函数(或者另一个循环我已经拥有的for循环的for循环?)。

谁能帮帮我?

【问题讨论】:

  • 你应该提供你的for-loop。
  • 向我们展示您的代码
  • 究竟是什么规则创建a_new
  • 当然,这是我的代码: for (i in seq_along(a1_new[i])) for (i in seq_along(a1_new)){ dataa$a1_new[i]

标签: r for-loop apply


【解决方案1】:

由于您没有提供任何代码示例,我假设您只是将一列添加到另一列。

在这种情况下,您可以:

#Dummy data    
DF=data.frame(replicate(10,sample(0:1,1000,rep=TRUE)))

#For loop
for(i in (which(seq(1:ncol(DF)) %% 2 == 1))){
DF[paste("new_",i,sep="")]=DF[i]+DF[i+1]}

这将在“DF”中创建一个新列,其结果是“DF”中的第一列 + “DF”中的第二列。操作可以随心所欲地改变。

当它在循环中使用ncol(DF) 时,它会根据您正在处理的表格的大小进行调整。

【讨论】:

  • 当然,这是我的代码: for (i in seq_along(a1_new[i])) for (i in seq_along(a1_new)){ dataa$a1_new[i]
  • @user7502433 是一个很好的可重现示例,您需要提供数据框或其一部分和代码;编辑您的帖子,并添加所有信息。据我从您提供的信息中猜到,我的解决方案有效,但您需要调整您的代码。继续努力,记住 stackoverflow 中的人不喜欢仅仅因为你不知道如何为特定数据编写特定代码。
  • 我知道了,非常感谢您的帮助!对不起!
猜你喜欢
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
相关资源
最近更新 更多