2013-11-24 41 views
1

我從excel中導入了數據集。我有一個'高度'的列,我想用''替換','。 。 我試過這個命令,但它給了我錯誤。將數據集的列中的逗號轉換爲點r

apply(apply(DATASET$Height, 2, gsub, patt=",", replace="."), 2, as.numeric) 

非常感謝您的幫助

+1

沒有原始數據很難調試。你爲什麼不用'dput(head(DATASET $ Height))'給我們一些高度樣本?此外,您不需要在這裏申請:您可以直接在'Height'向量上運行'gsub'。 'as.numeric'也是一樣。 – nograpes

+1

我們不知道如何將數據導入到R中,但是您應該檢查'read。*'函數中的'dec'參數以便從頭開始獲取正確的小數點。設置'dec =「,」',並將它們轉換爲R標準'「。」' – Henrik

+0

如果您在導入數據時使用'dec =「,」'參數:D –

回答

0

首先,你應該檢查是否是字符。於是,我就用逗號分割的字符串,然後將它們以點貼:

假設是你用DATASET[["Height"]]

a <- c("234,23", "2314,54", "234,65") 

得到再用sapply,您可以拆分和摺疊每個字符元素:現在

b <- sapply(a, 
    function(string){ 
    paste0(unlist(strsplit(string, split=",")),collapse=".") 
    }) 

,您可以用b更換DATASET[["Height"]]

+0

非常感謝您的幫助,我有身高像一個因素類。隨着你的程序被完全取代。 :d –

1

要重新編碼在數據幀 'DATASET' 列 '身高':

DATASET$Height <- gsub(",",".",DATASET$Height,fixed=TRUE) 

任何錯誤?如果沒有,您可以繼續將列轉換爲數字。 轉換爲數字時會出錯嗎?也許除了「,」還有其他的字符阻止R讀取數值。在這種情況下,您需要再次應用gsub以刪除所有非數字字符。

相關問題