r - 将逗号分隔的字符串转换为数字列

标签 r csv

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

例如:第 1 行(即:参与者 1 的数据)在“ react 时间”列下具有以下内容

reaction_times
2000,1450,1800,2200

因此,这些是参与者 1 在试验 1,2,3,4 中的 react 时间。

我现在想要创建一个新的数据集,其中这些试验的 react 时间全部形成单独的列。这样我就可以计算每次试验的平均 react 时间。

              trial 1  trial 2  trial 3  trial 4 
participant 1:   2000     1450     1800     2200

我尝试了 reshape2 包中的 colsplit ,但这似乎没有将我的数据分割成新的列(可能是因为我的数据都在 1 个单元格中)。

有什么建议吗?

最佳答案

我认为您正在寻找 strsplit() 函数;

a = "2000,1450,1800,2200"
strsplit(a, ",")
[[1]]                                                                                                                                                       
[1] "2000" "1450" "1800" "2200"   

请注意,strsplit 返回一个列表,在本例中只有一个元素。这是因为 strsplit 将向量作为输入。因此,您还可以将单单元格字符的长向量放入函数中,并返回该向量的拆分列表。在更相关的示例中,如下所示:

# Create some example data
dat = data.frame(reaction_time = 
       apply(matrix(round(runif(100, 1, 2000)), 
                     25, 4), 1, paste, collapse = ","),
                     stringsAsFactors=FALSE)
splitdat = do.call("rbind", strsplit(dat$reaction_time, ","))
splitdat = data.frame(apply(splitdat, 2, as.numeric))
names(splitdat) = paste("trial", 1:4, sep = "")
head(splitdat)
  trial1 trial2 trial3 trial4
1    597   1071   1430    997
2    614    322   1242   1140
3   1522   1679     51   1120
4    225   1988   1938   1068
5    621    623   1174     55
6   1918   1828    136   1816

最后,计算每人的平均值:

apply(splitdat, 1, mean)
[1] 1187.50  361.25  963.75 1017.00  916.25 1409.50  730.00 1310.75 1133.75
[10]  851.25  914.75  881.25  889.00 1014.75  676.75  850.50  805.00 1460.00
[19]  901.00 1443.50  507.25  691.50 1090.00  833.25  669.25

关于r - 将逗号分隔的字符串转换为数字列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8464312/

相关文章:

java - 如何查找文件是否为 CSV 文件?

python - 如何对csv表中的数据进行行到列的转置?

r - 为每行插入一个数字输入 - R Shiny

r - 如何在 R 中正确使用 summarise 来进行这个简单的分析?

php - 将数组与 array_diff 进行比较 - 但仅比较第一个字符

python - Windows 到 Linux 脚本问题 : "IndexError: list index out of range"

r - 如何使用 y 轴上的频率以外的变量在 R 的直方图中制作分组箱?

在双轴图表上重新标记一个轴

r - 有没有办法避免每次在 R 中安装软件包?

python - 如何使用滚动/移动平均值插入 csv 文件中的数据? (Python)