小编use*_*247的帖子

将逗号分隔的条目转换为列

我有一个包含多个列的数据集,其中一列是反应时间的列.这些反应时间以逗号分隔,表示不同试验的反应时间(同一参与者).

例如:第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个单元格中).

有什么建议?

csv r

15
推荐指数
4
解决办法
3万
查看次数

R dplyr:使用变量名调用 `count()` (现在 `count_()` 已被弃用)

我正在尝试将dplyr\count()与动态变量名称而不是列名称一起使用。以前,我会使用count_(),但现在已弃用。最好的替代品是什么?

\n\n

最小可重现示例:

\n\n
library(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\n
df %>% 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)

r dplyr

8
推荐指数
2
解决办法
1533
查看次数

在每个索引处生成具有唯一值的多个数字序列

我有一排数字1:n.我正在寻找第二行也有数字,1:n但这些应该是随机顺序,同时满足以下要求:

  1. 两个行中没有位置具有相同的数字
  2. 没有数字组合出现两次

例如,在下面

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中必须有相当优雅的解决方案.

random algorithm matlab sequence combinatorics

5
推荐指数
1
解决办法
562
查看次数

创建一个跨多个变量平衡的子集

为了说明我的问题,一个虚拟示例:我有一个包含 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 subset

5
推荐指数
1
解决办法
2308
查看次数

ggplot2:如何绘制正交回归线?

我已经在两种不同的视觉感知测试中测试了大量参与者——现在,我想看看这两种测试的表现在多大程度上相关。

为了可视化相关性,我使用 R 在 R 中绘制散点图ggplot()并拟合回归线(使用stat_smooth())。但是,由于 myxyvariable 都是性能度量,因此在拟合回归线时我需要同时考虑它们 - 因此,我不能使用简单的线性回归(使用stat_smooth(method="lm")),而是需要拟合正交回归(或 Total最小二乘法)。我该怎么做呢?

我知道我可以formula在中指定stat_smooth(),但我不知道要使用什么公式。据我了解,预设方法 ( lm, glm, gam, loess, rlm) 都不适用。

regression r ggplot2

4
推荐指数
1
解决办法
2515
查看次数

R:拆分数字字符串

我正在尝试拆分40位数字的字符串(即拆分1234567891234567891234567891 2 3 4等)

遗憾的是strsplit它不起作用,因为它需要字符,并且使用转换字符串as.character不起作用,因为它非常长并且R自动切断长数字的小数(最大值为22位小数).因此,我最终得到"1.2345e+35"一个字符串,而不是完整的数字.

是否存在strsplit十进制截止问题的数字变体或解决方法?我似乎无法在stackoverflow上找到答案,但如果之前已经回答过,请道歉.提前致谢!

string r strsplit

3
推荐指数
1
解决办法
1万
查看次数