将 R 中长破折号的所有实例替换为常规减号

标签 r regex dataframe character

在我下面的文本数据中,显然有一个类似于长破折号的特殊字符。但这实际上需要是一个常规的减号 - 符号。

有没有办法在 R 中用常规减号 - 替换所有长破折号 实例,以便我可以读取 dat 使用:read.table(text = dat, header = TRUE)?

dat <- "
Study Outcome Subscale g Variance Precision
1 1 1 –.251 .024 41.455
2 1 1 –.069 .001 1,361.067
3 1 5 .138 .001 957.620
4 1 1 –.754 .085 11.809
5 1 1 –.228 .020 49.598
6 1 6 –.212 .004 246.180
6 2 7 .219 .004 246.095
7 1 1 .000 .012 83.367
8 1 2 –.103 .006 162.778
8 2 3 .138 .006 162.612
8 3 4 –.387 .006 160.133
9 1 1 –.032 .023 44.415
10 1 5 –.020 .058 17.110
11 1 1 .128 .017 59.999
12 1 1 –.262 .032 31.505
13 1 1 –.046 .071 14.080
14 1 6 –.324 .003 381.620
14 2 6 –.409 .003 378.611
14 3 7 .080 .003 386.319
14 4 7 –.140 .003 385.542
15 1 1 .311 .005 185.364
16 1 1 .036 .005 205.063
17 1 6 –.259 .001 925.643
17 2 7 .196 .001 928.897
18 1 1 .157 .013 74.094
19 1 1 .000 .056 17.985
20 1 1 .000 .074 13.600
21 1 6 –.013 .039 25.425
21 2 7 –.004 .039 25.426
22 1 1 –.202 .001 1,487.992
23 1 1 .000 .086 11.628
24 1 1 –.221 .001 713.110
25 1 1 –.099 .001 749.964
26 1 5 –.165 .000 6,505.024
27 1 1 –.523 .063 15.856
28 1 1 .000 .001 1,611.801
29 1 6 .377 .045 22.045
29 2 7 .575 .046 21.677
30 1 1 .590 .074 13.477
31 1 1 .020 .001 1,335.991
32 1 1 .121 .043 23.489
33 1 1 –.101 .003 363.163
34 1 1 –.101 .003 369.507
35 1 1 –.104 .004 255.507
36 1 1 –.270 .003 340.761
37 1 1 .179 .150 6.645
38 1 2 .468 .020 51.255
38 2 4 –.479 .020 51.193
39 1 5 –.081 .024 42.536
40 1 1 –.071 .043 23.519
41 1 1 .201 .077 13.036
42 1 6 –.070 .006 180.844
42 2 7 .190 .006 180.168
43 1 1 .277 .013 79.220
44 1 5 –.086 .001 903.924
45 1 5 –.338 .002 469.260
46 1 1 .262 .003 290.330
47 1 5 .000 .003 304.959
48 1 1 –.645 .055 18.192
49 1 5 –.120 .002 461.802
50 1 5 –.286 .009 106.189
51 1 1 –.124 .006 172.261
52 1 1 .023 .028 35.941
53 1 5 –.064 .001 944.600
54 1 1 .000 .043 23.010
55 1 1 .000 .014 72.723
56 1 5 .000 .012 85.832
57 1 1 .000 .012 85.832
"

最佳答案

使用基础 R 中的 gsub()

dat <- gsub(pattern = "–", replacement = "-", x = dat)


head(read.table(text = dat, header = T))
  Study Outcome Subscale      g Variance Precision
1     1       1        1 -0.251    0.024    41.455
2     2       1        1 -0.069    0.001 1,361.067
3     3       1        5  0.138    0.001   957.620
4     4       1        1 -0.754    0.085    11.809
5     5       1        1 -0.228    0.020    49.598
6     6       1        6 -0.212    0.004   246.180

关于将 R 中长破折号的所有实例替换为常规减号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67288672/

相关文章:

python - 如何使用正则表达式创建特定的虚拟变量?

r - ggplot stat_summary_bin 故障?

c++ - 在 Rcpp 中连接和列出

python - 基于多个特殊字符的匹配模式

c++ - 如何从正则表达式模式列表中找到最具体的匹配项?

python - 如何在 Pandas DataFrame 中将 True/False 映射到 1/0?

r - R中Boxplot中的对数Y轴

r - 无法使用 home-brew 和 r 4.1 在 Big Sur 上安装 rcurl

javascript - 为什么//是javascript中的有效正则表达式?

python - Pandas dataframe If else 逻辑 AND 涉及两列