我在R中有两个数据框,其中包含在线实验的数据,参与者在屏幕上对单词进行了评分。数据帧对应于反应时间和单词等级。我不想在参与者不到1秒的时间内对单词进行评分的试验。
RT数据帧包含每个单词标记的列。例如。 “ RT.word_1”,“ RT.word_2”等。第二个数据帧还包含每个单词标记的列。例如。 “ rating.word_1”,“ rating.word_2”等。在两个数据框中,这些行对应于各个参与者。 rating dataframe RT dataframe
我已经重新编码了RT数据帧,因此现在1秒以下的任何反应时间都为NA。我想做的是重新编码我的评级数据框,使其包含完全相同索引处的NAs 。也就是说,我想按参与者和单词#索引到我的评分数据帧中,找出该单词的反应是否在我的RT数据帧中编码为NA,并且在这种情况下也将其编码为NA。我不知道在没有for循环的情况下如何做到这一点,如果像我这样的语句将与python一起使用,任何建议都将不胜感激。
谢谢。
答案 0 :(得分:0)
AFAIK,您必须编写一个循环来处理列,但可以向量化NA值的位置。
ratings <- data.frame(
rating.word_1 = c(1, 1, 4),
rating.word_2 = c(4, 3, 3)
)
RT <- data.frame(
RT.word_1 = c(2.360, NA, 1.328),
RT.word_2 = c(NA, 1.719, 2.469)
)
for (col_index in 1:ncol(RT)) {
target_rows <- is.na(RT[[col_index]])
ratings[target_rows, col_index] <- NA
}
R可以在作业的左侧执行这种计算,我一直觉得这很奇怪,但是更有经验的R程序员告诉我,这是范例。