我是使用R编程和数据分析的新手(我是心理学的第二年研究生,试图精通R)。
无论如何,这是我的基本问题:
我的数据是长格式的。我正在查看我的data.frame中的不同RT分数。我已导入到R.目前,我已将原始数据的一列转换为与原始数据分数对应/排列的z分数。
现在,我想删除原始数据分数的新列,其中z分数为+/- 1.96。
或者,我想知道如何根据我的原始分数创建一个新列,它会自动替换+/- 2SD远离均值的值,其值为0或“NA”。
谢谢大家!你们这里有很棒的社区,我打算学习很多东西。谢谢你的支持。
答案 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)
将向数据框添加新列。