2016-04-29 44 views
0

我有一列有貨幣數據的時間序列數據。數據中有'$'符號。如何從貨幣值中刪除所有$。如何編輯R中csv列中的所有值?

我的數據:

 Date Dividend dat 
1 1980-12-23 $0.001 26 
2 1981-03-24 $0.001 27 
3 1981-06-16 $0.001 28 
4 1981-08-31 $0.001 29 
5 1981-10-05 $0.003 30 
6 1982-03-23 $0.001 31 

我想這樣的數據:

 Date Dividend dat 
1 1980-12-23 0.001 26 
2 1981-03-24 0.001 27 
3 1981-06-16 0.001 28 
4 1981-08-31 0.001 29 
5 1981-10-05 0.003 30 
6 1982-03-23 0.001 31 
+0

'gsub(「$」,「」,dat $ Dividend)' –

+1

您不需要添加'fixed = T'嗎? –

+0

簡單的'gsub'會做到這一點。 –

回答

1

subfixed=TRUE將取代一個文字串另一個。您需要fixed=TRUE作爲$是一個特殊字符,其含義是正則表達式(它表示字符串的結尾)。

transform使命令的語法更好一些。 transform不會更改數據幀,因此您需要使用返回值,也許將其分配回原始變量。

transform(d, Dividend = sub('$', '', Dividend, fixed=TRUE)) 
     Date Dividend dat 
1 1980-12-23 0.001 26 
2 1981-03-24 0.001 27 
3 1981-06-16 0.001 28 
4 1981-08-31 0.001 29 
5 1981-10-05 0.003 30 
6 1982-03-23 0.001 31 
0

使用gsubfixed=TRUE由@Mathew作爲解釋。

ginidata <- read.table(text = "Date Dividend dat 
1 1980-12-23 $0.001 26 
2 1981-03-24 $0.001 27 
3 1981-06-16 $0.001 28 
4 1981-08-31 $0.001 29 
5 1981-10-05 $0.003 30 
6 1982-03-23 $0.001 31") 
ginidata$Dividend <- gsub("$","",ginidata$Dividend, fixed = TRUE) 

ginidata 
#   Date Dividend dat 
# 1 1980-12-23 0.001 26 
# 2 1981-03-24 0.001 27 
# 3 1981-06-16 0.001 28 
# 4 1981-08-31 0.001 29 
# 5 1981-10-05 0.003 30 
# 6 1982-03-23 0.001 31