R 为什么行和适用于某些变量,而不适用于';你不喜欢别人吗?
我使用以下代码行从其他变量创建新变量:R 为什么行和适用于某些变量,而不适用于';你不喜欢别人吗?,r,rowsum,R,Rowsum,我使用以下代码行从其他变量创建新变量: FER_TMS_nopractice_recoded_replaced %>% select(FACE.RT, SCRAM1.RT_total, SCRAM2.RT_total, SCRAM3.RT_total, SCRAM4.RT_total, SCRAM5.RT_total, SCRAM6.RT_total, SCRAM7.RT_total, SCRAM8.RT_total,
FER_TMS_nopractice_recoded_replaced %>% select(FACE.RT, SCRAM1.RT_total, SCRAM2.RT_total, SCRAM3.RT_total,
SCRAM4.RT_total, SCRAM5.RT_total, SCRAM6.RT_total, SCRAM7.RT_total, SCRAM8.RT_total,
SCRAM9.RT_total, SCRAM10.RT_total, SCRAM11.RT_total, SCRAM12.RT_total, RESPOND.RT_total,
WHITE4.RT_total) %>% rowSums(na.rm = TRUE) -> FER_TMS_nopractice_recoded_replaced$RT_TOTAL
问题是,虽然它对某些列工作正常,但对其他列,我得到以下错误:
FACE.RESP+RESPOND.RESP中出错:
二进制运算符的非数值参数
所有列/变量都包含NA值,我不明白为什么代码只针对某些变量而不是其他变量执行。有什么解决办法的建议吗
数据结构:
structure(list(SessionDate = structure(c(1L, 1L, 1L), .Label = c("07-16-2019",
"07-23-2019", "07-30-2019"), class = "factor"), SessionTime = structure(c(1L,
1L, 1L), .Label = c("11:46:03", "12:09:32", "13:12:03", "13:36:15",
"17:01:32", "17:28:27"), class = "factor"), Subject = c(3L, 3L,
3L), Sex = structure(c(1L, 1L, 1L), .Label = "male", class = "factor"),
Age = c(23L, 23L, 23L), Handedness = structure(c(1L, 1L,
1L), .Label = "right", class = "factor"), preOrpost = c("PRE",
"PRE", "PRE"), Site = c("RIGHT", "RIGHT", "RIGHT"), Condition = structure(c(2L,
2L, 2L), .Label = c("EMOPRAC", "EMOstim", "GENDPRAC", "GENDstim"
), class = "factor"), Duration = c(300L, 40L, 40L), Correct = c(2L,
2L, 1L), FACE.RESP = c("1", "1", "1"), SCRAM1.RESP = c(NA,
NA, NA), SCRAM2.RESP = c(NA, NA, NA), SCRAM3.RESP = c(NA,
NA, NA), SCRAM4.RESP = c(NA, NA, NA), SCRAM5.RESP = c(NA,
NA, NA), SCRAM6.RESP = c(NA, NA, NA), SCRAM7.RESP = c(NA,
NA, NA), SCRAM8.RESP = c(NA_character_, NA_character_, NA_character_
), SCRAM9.RESP = c(NA_character_, NA_character_, NA_character_
), SCRAM10.RESP = c(NA_character_, NA_character_, NA_character_
), SCRAM11.RESP = c(NA_character_, NA_character_, NA_character_
), SCRAM12.RESP = c(NA_character_, NA_character_, NA_character_
), RESPOND.ACC = c(1L, 0L, 1L), RESPOND.RESP = c("1", "0",
"1"), WHITE4.RESP = c(NA, NA, NA), FACE.RT = c(NA_integer_,
NA_integer_, NA_integer_), SCRAM1.RT = c(NA_integer_, NA_integer_,
NA_integer_), SCRAM2.RT = c(NA_integer_, NA_integer_, NA_integer_
), SCRAM3.RT = c(NA_integer_, NA_integer_, NA_integer_),
SCRAM4.RT = c(NA_integer_, NA_integer_, NA_integer_), SCRAM5.RT = c(NA_integer_,
NA_integer_, NA_integer_), SCRAM6.RT = c(NA_integer_, NA_integer_,
NA_integer_), SCRAM7.RT = c(NA_integer_, NA_integer_, NA_integer_
), SCRAM8.RT = c(NA_integer_, NA_integer_, NA_integer_),
SCRAM9.RT = c(NA_integer_, NA_integer_, NA_integer_), SCRAM10.RT = c(NA_integer_,
NA_integer_, NA_integer_), SCRAM11.RT = c(NA_integer_, NA_integer_,
NA_integer_), SCRAM12.RT = c(NA_integer_, NA_integer_, NA_integer_
), RESPOND.RT = c(251L, 1111L, 426L), WHITE4.RT = c(NA_integer_,
NA_integer_, NA_integer_)), row.names = c(NA, 3L), class = "data.frame")
根据
dput
输出,其中两列不是numeric
,即FACE.RT
和RESP.RESP
。我们可以使用mutate_at
将它们转换为数值
,现在代码就可以工作了
FER_TMS_nopractice_recoded_replaced <- FER_TMS_nopractice_recoded_replaced %>%
mutate_at(vars(FACE.RT, RESPOND.RESP), as.numeric)
FER\u TMS\u nopractice\u recodded\u replacement%
在(变量(FACE.RT,RESP.RESP),as.numeric)处进行变异
在这种情况下,错误消息是信息性的,即您可以检查str(FER\u TMS\u nopractice\u recodded\u replaced)
并查看行和
计算中是否包含非数值列,但它们都是数值,具有大量NA值。这意味着对于具有NA_字符
的列,它是一个字符
类列。将其转换为<代码>数字< /代码> <代码> AS。数字< /代码>,它应该工作,即<代码> AS。数字(Fr.TMSUnRraceTeCyE.Read Dead替换$YouTube)< /C> >如前所述,请考虑复制粘贴<代码> DPT(头(YouDATA))<代码>,以便我们获得您的DATE数据结构。一些列是字符
类,而且\u总计
列也不存在