我有一个包含多个列的数据集,其中一列是反应时间的列.这些反应时间以逗号分隔,表示不同试验的反应时间(同一参与者).
例如:第1行(即:来自参与者1的数据)在"反应时间"列下面有以下内容
reaction_times
2000,1450,1800,2200
Run Code Online (Sandbox Code Playgroud)
因此,这些是参与者1对试验的反应时间1,2,3,4
.
我现在想要创建一个新的数据集,其中这些试验的反应时间都形成单独的列.这样我就可以计算每次试验的平均反应时间.
trial 1 trial 2 trial 3 trial 4
participant 1: 2000 1450 1800 2200
Run Code Online (Sandbox Code Playgroud)
我尝试了"reshape2"-package中的"colsplit",但这似乎并没有将我的数据拆分成新列(可能是因为我的数据全部在1个单元格中).
有什么建议?
我正在尝试将dplyr
\count()
与动态变量名称而不是列名称一起使用。以前,我会使用count_()
,但现在已弃用。最好的替代品是什么?
最小可重现示例:
\n\nlibrary(dplyr)\ndf <- data.frame(id = 1:10, city = sample(c("London","Paris","Amsterdam"), 10, replace=TRUE))\ncolname <- "city"\n
Run Code Online (Sandbox Code Playgroud)\n\n这是我尝试过的:
\n\ndf %>% count( city ) # desired output (works but isn\'t dynamic)\ndf %>% count( !!colname ) # doesn\'t work, makes it literally "city"\ndf %>% count( vars(colname) ) # doesn\'t work\ndf %>% count( eval(colname) ) #\xc2\xa0doesn\'t work either\ndf %>% count( eval(parse(text=colname)) ) # works, but is not \'dplyr\' ?\ndf %>% count( eval(sym(colname)) ) # works, but …
Run Code Online (Sandbox Code Playgroud) 我有一排数字1:n
.我正在寻找第二行也有数字,1:n
但这些应该是随机顺序,同时满足以下要求:
例如,在下面
Row 1: 1 2 3 4 5 6 7 ...
Row 2: 3 6 15 8 13 12 7 ...
Run Code Online (Sandbox Code Playgroud)
数字7出现在第1行和第2行的相同位置(即位置7;因此不满足规则1)
而在下面
Row 1: 1 2 3 4 5 6 7 ...
Row 2: 3 7 15 8 13 12 2 ...
Run Code Online (Sandbox Code Playgroud)
2 + 7的组合出现两次(在第2和第7位;因此不满足规则2).
或许可以 - 但是不必要地耗费时间 - 手工完成(至少直到合理的数量),但在MATLAB中必须有相当优雅的解决方案.
为了说明我的问题,一个虚拟示例:我有一个包含 16 行(这些代表试验)和 3 列(试验难度、标签 X 和标签 Y)的数据集。标签 X 是一个有 4 个水平(1-4)的因子,标签 Y 是一个有 2 个水平(“女性”、“男性”)的因子。例如:
difficulty X Y
trial1 3.0 1 male
trial2 1.4 1 male
trial3 2.1 1 female
trial4 1.5 1 female
trial5 0.3 2 male
trial6 1.2 2 male
trial7 3.0 2 female
trial8 1.6 2 female
trial9 0.8 3 male
trial10 1.4 3 male
trial11 2.8 3 female
trial12 1.5 3 female
trial13 0.3 4 male
trial14 1.2 4 male
trial15 3.0 4 female
trial16 …
Run Code Online (Sandbox Code Playgroud) 我已经在两种不同的视觉感知测试中测试了大量参与者——现在,我想看看这两种测试的表现在多大程度上相关。
为了可视化相关性,我使用 R 在 R 中绘制散点图ggplot()
并拟合回归线(使用stat_smooth()
)。但是,由于 myx
和y
variable 都是性能度量,因此在拟合回归线时我需要同时考虑它们 - 因此,我不能使用简单的线性回归(使用stat_smooth(method="lm")
),而是需要拟合正交回归(或 Total最小二乘法)。我该怎么做呢?
我知道我可以formula
在中指定stat_smooth()
,但我不知道要使用什么公式。据我了解,预设方法 ( lm, glm, gam, loess, rlm
) 都不适用。
我正在尝试拆分40位数字的字符串(即拆分123456789123456789123456789
成1 2 3 4
等)
遗憾的是strsplit
它不起作用,因为它需要字符,并且使用转换字符串as.character
不起作用,因为它非常长并且R自动切断长数字的小数(最大值为22位小数).因此,我最终得到"1.2345e+35"
一个字符串,而不是完整的数字.
是否存在strsplit
十进制截止问题的数字变体或解决方法?我似乎无法在stackoverflow上找到答案,但如果之前已经回答过,请道歉.提前致谢!