日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《深入浅出数据分析》第十三章

發布時間:2023/12/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《深入浅出数据分析》第十三章 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 整理數據
  • 一、Excel
  • 二、正則表達式
  • 三、去重
  • 四、補充介紹正則表達式


整理數據

這章進行了簡單的數據清洗。


一、Excel

一開始拿到散亂的數據,先用Excel進行分列。

散亂的數據:





這里先處理 FirstName ,可以看到這一列的問題是,每個名字前面都多一個^字符,用Excel工具去掉即可。

先列出來幾個書中提到的函數:

函數作用
FIND返回指定字符串的位置
LEFT取單元格左邊的字符
RIGHT取單元格右邊的字符
TRIM刪除單元格中的空格
LEN求單元格中的長度
CONCATENATE將兩個值合并
VALUE求以文本格式存儲的數據的數值
SUBSTITUTE以指定的新文本替代單元格中不需要的文本

這里用到的是SUBSTITUTE函數。

SUBSTITUTE(text, old_text, new_Text, [instance_num])

我們先新建一個列,命名為NewFirstName。之后輸入公式。如下圖:

這樣FirstName就處理完了,但是LastName無法使用簡單的Excel函數去掉中間的多余字符,所以我們使用R。
這里注意,不是Excel無法處理這種問題,是因為如果想要使用Excel函數去處理,就要嵌套多個不同函數,這樣不便于使用及更改,所以還是使用R更方便快捷。

二、正則表達式

正則表達式是一種編程工具,可以用這個工具制定復雜的模式以便匹配和替換文本字符串。
本次數據中的LastName列就可以使用這個方式處理。

先用代碼演示一下書中示例:

hfhh <- read.table("D:/Excel/hfda/hfda_ch13_raw_data.csv", sep=",",header=1) // 先加載數據 NewLastName <- sub("\\(.*\\)", "", hfhh$LastName) //使用正則表達式處理LastName列 這里解釋一下這個正則表達式的含義: \\(.*\\) 總體來看就是要匹配()中的內容 分解開來看: \\( 代表左括號,\\表示括號本身并不是R的表達式 \\) 代表右括號,\\表示括號本身并不是R的表達式 .* 代表括號內的全部內容

這樣LastName這一列就處理好了,但在數據中我們發現很多重復項,這些重復項的名字和電話是相同的,而時間等無關項不同。這就需要我們先將其無關項刪除,然后再進行去重操作。

先去除無關項:

hfhhNameOnly$Time <- NULL hfhhNameOnly$CallID <- NULL

三、去重

可以使用R中的unique()函數去掉名字中的重復行。
代碼示例如下:

hfhhNameOnly <- unique(hfhhNameOnly)

去重完成后,將整理好的數據存為csv文件。
代碼示例如下:

write.csv(hfhhNameOnly, file="hfhhNameOnly.csv")

四、補充介紹正則表達式

正則表達式在很多語言上都經常用到,在這簡單整理一下:
https://www.runoob.com/regexp/regexp-intro.html
這個網站里面介紹的超級全面,存在這里留著看,感謝大佬,感謝互聯網。

總結

以上是生活随笔為你收集整理的《深入浅出数据分析》第十三章的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。