在r中设置观察值时出现意外错误'='

时间:2018-06-29 11:23:31

标签: r

我正在尝试对数据集中的特定观测值进行子集化。

我有四列:Trial_codeFlankerRTcorrect

这是我的数据框中的摘录:

Trial_code Flanker   RT correct
1    validspatialcue1       1  621       1
2           doublecue       2  730       1
3               nocue       1  796       1
4   invalidspatialcue       1  511       1
5    validspatialcue3       2  736       1
6               nocue       1  593       1
7    validspatialcue2       2  682       1
8           doublecue       2  690       1
9   invalidspatialcue       1  641       1
10   validspatialcue1       1  476       1
11   validspatialcue3       2  573       1

我正在尝试选择并创建符合以下条件的观测数据框

Trial_code中的条目应为以下任意一项:

validspatialcue1validspatialcue2validspatialcue3

Flanker中的值应等于1

为此,我编写了以下代码:

data1 <- subset(mydata, Trial_code=="validspatialcue1",Trial_code=="validspatialcue2",Trial_code=="validspatialcue3" & Flanker=1)

我遇到以下错误:

Error: unexpected '=' in "data1 <- subset(mydata, Trial_code=="validspatialcue1",Trial_code=="validspatialcue2",Trial_code=="validspatialcue3" & Flanker="

任何人都可以帮忙,因为我不确定我在这里犯了什么错误。

2 个答案:

答案 0 :(得分:1)

尝试一下:

mydata[grepl('^validspatialcue[123]', mydata$Trial_code) & 
       mydata$Flanker == 1, ]

这里提供了两个参数。 第一个-grepl(...)-在可变的Trial_code中查找以下字符串:

  1. 以字符串“ validspatialcue”开头的行(“ ^”)。 “ ^”行的开头对于使用“ in validspatialcue”排除误报很重要。
  2. 后跟1、2或3(“ [123]”)。

第二个查找mydata等于1的情况。

“&”符号指示子设置查找先前条件同时成立。

在关闭球拍之前,请不要忘记逗号“!”!

答案 1 :(得分:0)

您的最后一条语句正在使用=,而必须改为==

data1 <- subset(mydata, Trial_code=="validspatialcue1",Trial_code=="validspatialcue2",Trial_code=="validspatialcue3" & Flanker==1)