从现有的z分数列创建一个新列,w / some替换为0或N / A.

时间:2014-03-11 19:57:36

标签: r psych

我是使用R编程和数据分析的新手(我是心理学的第二年研究生,试图精通R)。

无论如何,这是我的基本问题:

我的数据是长格式的。我正在查看我的data.frame中的不同RT分数。我已导入到R.目前,我已将原始数据的一列转换为与原始数据分数对应/排列的z分数。

现在,我想删除原始数据分数的新列,其中z分数为+/- 1.96。

或者,我想知道如何根据我的原始分数创建一个新列,它会自动替换+/- 2SD远离均值的值,其值为0或“NA”。

谢谢大家!你们这里有很棒的社区,我打算学习很多东西。谢谢你的支持。

1 个答案:

答案 0 :(得分:0)

您可以使用子集运算符[。假设你有一个向量myData。您可以像这样添加它:

cutoff <- 1.96
myData[abs(myData) > cutoff] <- NA

最好不要使用0,因为0是可能的值。请改用NA。此外,添加一个额外的变量cutoff有助于修改和阅读代码更容易。

要创建新矢量,您可以使用ifelse

newVector <- ifelse(abs(myData) > cutoff, NA, myData)

你可以将它们组合在一起:

newData <- cbind(myData, newVector)

或者,如果myData是数据框,

myData$newVector <- ifelse(abs(myData) > cutoff, NA, myData)

将向数据框添加新列。