0

我是使用 R 进行编程和数据分析的新手(我是心理学专业的二年级研究生,正在努力精通 R)。

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

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

现在,我想为我的原始数据分数创建一个新列,并删除 +/- 1.96 的 z 分数。

或者,我想知道如何根据我的原始分数创建一个新列,该列自动将与平均值相差 +/- 2SD 的值替换为 0 或“NA”的值。

谢谢大家!你们在这里拥有很棒的社区,我计划学习很多。谢谢你陪我。

4

1 回答 1

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)

将向数据框中添加一个新列。

于 2014-03-11T20:02:44.413 回答