【问题标题】:How to convert only SOME positive numbers to negative numbers (conditional recoding)?如何仅将一些正数转换为负数(条件重新编码)?
【发布时间】:2012-08-14 00:29:27
【问题描述】:

我正在寻找一种方便的方法来将同一变量的正值(比例)转换为负值,具体取决于另一个变量的值。

这是数据结构的样子:

id Item Var1  Freq 
1  P1   0    0.043
2  P2   1    0.078
3  P3   2    0.454
4  P4   3    0.543
5  T1   0    0.001
6  T2   1    0
7  T3   2    0.045
8  T4   3    0.321
9  A1   0    0.671
...

更准确地说,如果 Var1

这是我尝试过的:

for(i in 1: 180) {
if (mydata$Var1 <= "1") (mydata$Freq*(-1))}

mydata$Freq[mydata$Var1 <= "1"] = -abs(mydata$Freq)}

在这两种情况下,负号的设置都是正确的,但数字也会改变。

非常感谢任何帮助。谢谢!

【问题讨论】:

  • 我的猜测是问题是由于您在 1 周围使用了引号。如果您要进行数字比较,为什么要将 1 变成字符串?
  • 你还需要对两边进行子集化,mydata$Freq[mydata$Var1 ifelse 如下

标签: r variables data-management


【解决方案1】:

它也可以用于处理两个变量,当一个变量具有负值并希望通过保留负值来组合它们时, 同样可以使用它通过 put - 在变量的开头(如上所述)转换为负值,例如-频率。

mydata$new_Freq <- with(mydata, ifelse(Var1 < 0, Low_Freq, Freq))


id Item Var1  Freq  Low_Freq
1  P1   0    1.043  -0.063
2  P2   1    1.078  -0.077 
3  P3   2    2.401  -0.068  
4  P4   3    3.543  -0.323
5  T1   0    1.001   1.333
6  T2   1    1.778   1.887 
7  T3   2    2.045   1.011
8  T4   3    3.321   1.000
9  A1   0    4.671   2.303



# Output would be:

id Item Var1  Freq  Low_Freq   new_Freq
1  P1   0    1.043  -0.063     -0.063
2  P2   1    1.078  -0.077     -0.077
3  P3   2    2.401  -0.068     -0.068
4  P4   3    3.543  -0.323     -0.323
5  T1   0    1.001   0.999      1.001
6  T2   1    1.778   0.887      1.778
7  T3   2    2.045   1.011      2.045
8  T4   3    3.321   1.000      3.321
9  A1   0    4.671   2.303      4.671

【讨论】:

    【解决方案2】:

    试试:

    index <- mydata$Var1 <= 1
    mydata$Freq[index] = -abs(mydata$Freq[index])
    

    您尝试的代码中有两个错误:

    • 您通过写x &lt;= "1" 进行了字符比较 - 这应该是一个数字比较,即x &lt;= 1
    • 虽然您要替换向量的一个子集,但您不会引用与替换相同的子集

    【讨论】:

      【解决方案3】:
      new.Freq <- with(mydata, ifelse(Var1 <= 1, -Freq, Freq))
      

      【讨论】:

        猜你喜欢
        • 2011-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-13
        • 2011-12-13
        • 2015-06-14
        相关资源
        最近更新 更多