如何在我的数据框中更改“..”?

时间:2017-08-04 08:25:46

标签: r

数据框如下所示,我遗漏了一些不相关的行和列。

CountryCode rank Country GDP                
COM 182     Comoros 596

DMA 183     Dominica    480

TON 184     Tonga   472

FSM 185     Micronesia, Fed. Sts.   326

STP 186     S鉶 Tom?and Principe 263

PLW 187     Palau   228

MHL 188     Marshall Islands    182

KIR 189     Kiribati    175

TUV 190     Tuvalu  40



ASM         American Samoa  ..

ADO         Andorra ..

CYM         Cayman Islands  ..

CHI         Channel Islands ..

CUW         Cura鏰o  ..

DJI         Djibouti    

FRO         Faeroe Islands  ..

PYF         French Polynesia    ..

GRL         Greenland   ..

GUM         Guam    ..

IMY         Isle of Man ..

PRK         Korea, Dem. Rep.    ..

LBY         Libya   ..

LIE         Liechtenstein   ..

MMR         Myanmar ..

在我读完这个csv文件后,我想用“”代替“”,所以我使用代码:

df3$GDP <- as.numeric(gsub("..", "", df3$GDP))

事实证明,这些数字变为0,1,2 ......并且“..”变为NA,但是,如果我使用

df3$GDP <- as.numeric(gsub(",", "", df3$GDP))

然后事实证明是正常的,因为原始数字仍然在GDP列中,并且“..”已经更改为NA。我无法弄清楚为什么会发生这种情况。你能救我吗?

1 个答案:

答案 0 :(得分:2)

我们需要转义\\ .因为它是元字符(暗示任何字符)才能获得字符的字面含义。

as.numeric(gsub("\\.+", "", df3$GDP))

或以其他方式使用fixed = TRUE

as.numeric(gsub("..", "", df3$GDP, fixed = TRUE))

但是,,不是元字符,所以我们不需要转义