这是我第一次向这个论坛提问。我希望你能帮助我。我有一个包含眼动追踪数据的数据文件。在表格中,每行都是8.3 ms的样本。变量ID计数整个会话中记录的样本数量。变量TrialID列出了试验编号。我想要的是
1.变量状态的每个水平、每个试验和每个受试者的计数相同的列
1.一列,其中变量状态的每个水平、每个试验和每个受试者每行加8.3秒。
这是相关列的示例
Subject ID TrialId Status
253 1 1 Fixation1
253 2 1 Fixation1
253 3 1 Fixation1
253 4 1 Fixation1
253 34 1 Preview1
253 35 1 Preview1
253 36 1 Preview1
253 66 1 Show1
253 67 1 Show1
253 68 1 Show1
253 69 1 Show1
253 70 1 Show1
253 134 2 Fixation1
253 135 2 Fixation1
253 150 2 Preview1
253 151 2 Preview1
253 152 2 Preview1
253 234 2 Show1
253 235 2 Show1
253 236 2 Show1
253 237 2 Show1
300 1 1 Fixation1
300 2 1 Fixation1
300 3 1 Preview1
300 44 1 Preview1
300 45 1 Preview1
300 46 1 Show1
300 47 1 Show1
300 48 1 Show1
300 49 1 Show1
字符串
我想要的输出看起来像这样:
Subject ID TrialId Status Binnr Time
253 1 1 Fixation1 1 0
253 2 1 Fixation1 2 8.3
253 3 1 Fixation1 3 16.6
253 4 1 Fixation1 4 24.9
253 34 1 Preview1 1 0
253 35 1 Preview1 2 8.3
253 36 1 Preview1 3 16.6
253 66 1 Show1 1 0
253 67 1 Show1 2 8.3
253 68 1 Show1 3 16.6
253 69 1 Show1 4 24.9
253 70 1 Show1 5 33.2
253 134 2 Fixation1 1 0
253 135 2 Fixation1 2 8.3
253 150 2 Preview1 1 0
253 151 2 Preview1 2 8.3
253 152 2 Preview1 3 16.6
253 234 2 Show1 1 0
253 235 2 Show1 2 8.3
253 236 2 Show1 3 16.6
253 237 2 Show1 4 24.9
300 1 1 Fixation1 1 0
300 2 1 Fixation1 2 8.3
300 3 1 Preview1 1 0
300 44 1 Preview1 2 8.3
300 45 1 Preview1 3 16.6
300 46 1 Show1 1 0
300 47 1 Show1 2 8.3
300 48 1 Show1 3 16.6
300 49 1 Show1 4 24.9
型
我试着做了一个for循环,在行上循环,每次遇到主题编号/TrialID和状态级别时,它都会向空列binnr添加一个数字。
for(i in 1:length(dat)) {
if (dat$Status == "Show1"& dat$TrialID == "1" & Subject == "223")
型
en然后附加一个值已经没有意义,因为它会太低效列出一个组合.我可以显示更多的代码,但我会很感激,如果你能给我一个东西开始帮助
我试着做了一个for循环,在行上循环,每次遇到主题编号/TrialID和状态级别时,它都会向空列binnr添加一个数字。
for(i in 1:length(dat)) {
if (dat$Status == "Show1"& dat$TrialID == "1" & Subject == "223")
型
en然后附加一个值已经没有意义了,因为它会太低效,列出一个组合。我可以显示更多的代码,但有这么多初学者的错误和缺陷。我会很感激,如果你能给我一个开始,在不同的列循环
2条答案
按热度按时间rqcrx0a61#
我会提供这个选项:
字符串
或者在一个命令中:
型
输出量:
型
使用的数据:
型
bzzcjhmw2#
你应该可以使用
dplyr::mutate()
来实现这一点--Binnr
只是每个组中的行数,所以使用dplyr::row_number()
。Time
使用基数Rseq()
来创建一个从0到每个组中最大行数的序列(使用dplyr::n()
),以8.3段计数。字符串
输出
型