![post-title](https://i.ytimg.com/vi/_RsaNzZFuUU/hqdefault.jpg)
r字串轉數字 在 コバにゃんチャンネル Youtube 的最佳貼文
![post-title](https://i.ytimg.com/vi/_RsaNzZFuUU/hqdefault.jpg)
Search
R 物件最基本的單位是向量(vector),以c() 表示(c 取自combine之意),元素以逗號分隔。 ... 字串轉數字 a1 <- c("89", "91", "102") as.numeric(a1) ... <看更多>
CGMH R資料分析三部曲與醫學資料進階分析課程. ... #1~9,每隔2產生一數字 seq(from=1,to=9,by=2) ... 用雙引號 " 框起: 字串格式; 數字前後加上雙引號: 字串格式. ... <看更多>
#1. Ch1: General Background in R
R 物件最基本的單位是向量(vector),以c() 表示(c 取自combine之意),元素以逗號分隔。 ... 字串轉數字 a1 <- c("89", "91", "102") as.numeric(a1)
我現在有一個數據框datexpr,裡面的數字都是以字元型表示的,像這樣 > datexpr[1,1] [1] " 1.143773961". 現在我想把這個資料框中的字元型數字全部轉為 ...
數字 (integer, number); 布林代數(logic); 字串(character). Vector & Factor & List. 陣列(vector); 類別變數(factor); 列表(list).
#4. R語言將資料框中的字元型別數字轉換為數值- IT閱讀 - 萌寵公園
所以需要先將f_tmp轉成文字型態, 再轉成數值型態即可:n_c_tmp <- as.numeric(as.character(f_tmp))。 下方有小 ... 3. R筆記--(2)基本資料型態- RPubs. 「字串 ...
#5. 2.1 變數與常用資料結構 - Data Thinking with R
數字 轉字串 as.character(a3). [1] "-2" "-1" "0" "1" "2". 向量物件的簡記. 連續整數向量可以利用: (冒號) 簡記,譬如數列1, 2, 3 在R 語言中可 ...
#6. Chapter 10 文字與字串資料處理| R 資料科學與統計 - Bookdown
{R} 套件 stringr 有更多處理文字或字串資料函式. 10.1 文字與字串資料基礎. 輸入文字遠比數字複雜, 必須考慮大小寫, 空格或 Tab ...
#7. 社會科學統計方法
表格(table) 由此出發,了解 R 的資料型態以及運算。 ... 字串無法用 as.numeric 轉換為數字,但是可以用語法進行轉換(請見因素一節)。
#8. [R] 當數值型轉Factor再轉回數字型資料時需注意之事項 - Mao's ...
[R] 當數值型轉Factor再轉回數字型資料時需注意之事項 ... 當再把f_tmp轉回數值型態:n_tmp <- as.numeric(f_tmp), ... [R] 去除字串前後空格.
#9. Day09 R語言的資料型別(Type) - iT 邦幫忙
字元(character): 文字字串,用雙引號包起來。 數值(numeric): 雙倍精準度數值,簡單的形容就是double。 整數(integer): 沒有小數位的數值。 複數 ...
#10. R 字串與因子
在處理資料時,除了數值資料之外,文字資料也是很常見的資料類型,尤其是在整理第一手的原始資料時,通常都會有非常大量的文字資料需要處理,而因子則 ...
#11. R 語言基本資料結構 - ERRK
character – 文字字串,通常用“” 包起來— A. integer 和numeric 一起看的話,囊括了整數(沒有小數點)與浮點數(有小數點)這兩種數值。R 預設的數字 ...
#12. 数值型与字符型转换总结|R语言 - 知乎专栏
理论部分主要是R for Data Science的向量节选翻译、《R语言实战》第二章2.2创建数据结构、《… ... 某一列文本转为数字; 某一列数字转为文本.
#13. R 變數類型
判斷變數類型函數class(); R 處理數值的限制; 浮點數陷阱 ... Charater 字串, 'a', “TURE”, “12.3”, 字串都由兩個雙引號或單引號所包覆.
#14. R 語言學習筆記(四) : 因子 - 小狐狸事務所
因子是R 語言中用來儲存類型變數(Categorical) 的資料結構. 統計學將變數區分為如下四種: ... levels=設定之因子等級 (通常是字串或數值向量)
#15. R Learning Notes: Parsing (字串處理). 此篇僅做記錄用
但是不管是工程師自己的想法,或是眾人的智慧,R 都能從文字中萃取出資訊。 ... 如果都是兩個數字的話,我們可以透過`substring`函數直接擷取字串中的段落。 R ...
#16. r語言文字轉數字 - 軟體兄弟
r 語言文字轉數字,6.2 資料型別轉換處理. 在資料型態章節Chapter 1.5中,曾介紹數值(numeric)、字串(character)、布林變數(logic) ...,2015年1月31日— 字串轉數字a1 ...
#17. 13
... const int MAX_NO = 10000 ; // 字串轉整數int atoi( const string& a ) { int no ... 0 : r[--k] - '0' ) ; } // 比較兩字串數字no1 與no2 為幾個na 幾個nb void ...
#18. 6 字符型数据及其处理| R语言教程
用 nchar(x, type='bytes') 计算字符型向量 x 中每个字符串的以字节为单位的长度,这一点对中英文是有差别的, 中文通常一个汉字占两个字节,英文字母、数字、标点占 ...
#19. R语言将数据框中的字符类型数字转换为数值 - CSDN博客
我现在有一个数据框datexp,我想先把它转置之后,然后再把数据框内的字符型数字转换为数值型数字由于转置之后数据框变成了矩阵,所以要用data.frame把 ...
#20. 【數據分析】R|時間格式處理|date format & lubridate
但在了解怎麼用後面的函數從字串中轉成時間前,得先知道什麼是標準的時間 ... 長相已經是標準時間格式的樣子,但型別為character; 長相是數字(Ex: ...
#21. Algorithm Design - 演算法筆記
一次找一個數字,如此下去就會把所有數字按照順序排好了。 ... 也可以一步一步進行:(一)複製一份字串(二)字串轉換成小寫(三)印出字串。 ... 範例:反轉字串.
#22. CGMH_R/01BasicRandDataImport.md at master - GitHub
CGMH R資料分析三部曲與醫學資料進階分析課程. ... #1~9,每隔2產生一數字 seq(from=1,to=9,by=2) ... 用雙引號 " 框起: 字串格式; 數字前後加上雙引號: 字串格式.
#23. CAST 和CONVERT (Transact-SQL) - SQL Server - Microsoft ...
將非數值char、nchar、nvarchar 或varchar 資料轉換成decimal、float、int 或numeric 時,SQL Server 會傳回錯誤訊息。 當空字串(" ") 被轉換為numeric 或 ...
#24. Ch5 資料合併{目錄} 5-1 合併資料5-1.1 垂直合併5-1.2 水平合併 ...
5-2.2 encode/destring/tostring: 文字字串與數字字串間的轉換 ... 說明:將rep78 變數依據其觀察值的分群,建立以R 為名稱的變數。由圖可.
#25. Ch02.變數、常數以及資料型態
也可以宣告字串(string) 和布林(boolean) 變數或常數名稱: ... 表示數值時,可以用底線分隔數字,每三個數字以_ 隔開。 let. oneMillion ... \r, 跳到下一行首.
#26. 10-4 字串、數值與陣列的轉換
在上例中,原先變數x 儲存一個整數13862,int2str 指令將其轉換成一個字串"13462",其長度為5 個字元。 若要將實數轉為字串,可用num2str 指令,例如:. Example 2: 10-字 ...
#27. 未轉換公式的字串函數 - Salesforce Help
string 是要移除前置空格或指定子字串的維度資料欄或文字字串。 substring 是要從字串移除的值。此參數是選擇性的。如果您沒有指定子字串,則 ...
#28. Python字串(string)基礎與20種常見操作 - 自學成功道
但其實程式設計的實務上,處理文字字串 (string)的頻率遠比數字高出許多,若要說學習 ... 在字串的前面加上 r ,可以印出字串的全貌,包含轉義符號。
#29. 字元(char) | C++與演算法
字元(char) · ASCII · 語法1 - 整數轉成字元 · 範例1 - ASCII表輸出器 · 語法2 - 字元轉成整數 · 範例2 - 輸出字元的ASCII編號 · 範例3 - 利用關係運算判斷字元內容 · 想想看.
#30. 字元陣列
C語言允許用字串的方式對陣列作初始化賦值。 例如:. char c[]={'c', ' ','p','r' ...
#31. [程式] R的字串處理- 看板Statistics
[軟體程式類別]: R [程式問題]: 資料處理[軟體熟悉度]: ... 因為它在轉成數字和字串的時候, 常常會變成跟原本不一樣的東西, 建議資料處理的過程, ...
#32. int - Adobe ActionScript® 3 (AS3 ) API 參考
如果您使用的數字超過 int.MAX_VALUE ,請考慮使用Number。 下列範例會呼叫int 類別的 toString() 方法,以傳回字串 1234 :. var myint:int = 1234; myint.
#33. 字串
反轉字串(把"abcde"變成"edcba") void reverse(char *s) { int i, j; char c; // 假設字串長度為n,將0和n-1調換,再換1和n-2,直到字串中間為止for (i = 0, ...
#34. R程式設計 - 吳漢銘
若運算對象是一個數字變數,則. &&,|| 和&, | 沒有差別。 ... 「字串處理」Ebook: Handling and Processing Strings in R ... 字串轉成變數名稱或指令.
#35. 正規表達式- JavaScript
下面這個script 以 replace() 方法移轉字串位置。對於要被置換的文字內容,以 $1 和 $2 來代表先前re 這個變數裡面,找出來綑綁且照順序 ...
#36. R 字串處理 - 龍崗山上的倉鼠
此章重點偏向處理"字串" -> character 的資料!!! 利用paste() 函數建立字串; 利用sprintf() 函數建立字串; 抽取文字; 正規表式法.
#37. R 將Data Frame 一欄文字分割成多欄位教學與範例 - Office 指南
其中 info 欄位中儲存了體重、身高與年紀三項數值,但是這些資料以分號( ; )分隔,都放在同一個 info 欄位中,沒辦法直接取用。 strsplit 函數. 若要將字串依據指定分隔 ...
#38. 使用R處理時間資料(DateTimeClasses)的格式(lubricate ...
基本R時間數字的處理和轉換 ... 在資料格式上,R裡面有兩大類:Date和POSIXct/POSIXlt ... 非時間“資料格時”(為字串)轉換為時間”資料格式“
#39. R學習筆記:資料清理Cleaning Data (2)
str_pad():將0補上字串資料 str_detect():偵測向量資料中的特定字串 str_replace() : 尋找並取代文字值(例如用-取代e,"one apple"會變成on- apple)
#40. 字串處理與函式 - Python 程式設計
\r. 返回符號(CR). \t. ⽔水平縮排符號(TAB). \v. 垂直跳格符號(VT) ... 數字型態的切⽚片. — 必須先⽤用str()函數轉換成字串. 字串處理 ...
#41. 如何轉換文字與數字變項、調整日期格式 - SAS Blogs
Part 1:在資料處理過程中,有時需要將文字變項轉為數字變項,以便進行後續的計算。 範例資料1:病患就醫資料ss,變項包含病患id、出生日期birth_date、 ...
#42. 第3 章: 基本物件3: Basic Objects
R 基本介面是一個互動式指令視窗, 指令可分成運算式expression 如1+2 ... "character", 文字型(或字串), 通常輸入時, 在文字或字串兩側加上雙引號(").
#43. #分享R語言-時間資料處理 - App板 | Dcard
在R資料處理之中,時常會需要遇到時間格式的處理,實驗數據、股市資料、氣候 ... 取得的時間資料就是一長串的數字,如何讓程式讀取- R語言,RStudio,時間.
#44. ACL 脚本指南14.1 - 函数
一个数值的绝对值是忽略其数字符号的数值。 ... 返回一个数字,该数字指定某个子串在字符值内的哪个位置开始出现。 ... 返回由R 函数或脚本计算的日期时间值。
#45. 用lubridate 處理時間序列(time series)中的日期
這學期讓學生作期末專題時,有幾位學生想處理的資料是內含日期的時間序列(time series)。因為日期讀入R 以後會儲存成字串(如果有記得stringsAsFactor = FALSE), ...
#46. 在R 中,如何將百分比的字元轉換成數字 - 開發99編程知識庫
在将百分比转换为数字时遇到问题。 比如我想将" 10%"转换为10%,但是.
#47. 字串(String) · GitBook - Crystal 程式語言
字串 通常由字串常值來表達——即由一對雙引號( " )括住數個UTF-8 字元: "hello world" ... 我們也可以使用反斜線搭配最多3 個數字表達8 進位編碼的字元:
#48. 用戶指南
addmodulo10_212():可求回一個模數10_212 的檢查字元(標準模數10 檢查字元的變體),並包含. 當前字串及字串末端的檢驗和。 addmodulo10_2 (string):可求回整數,末端 ...
#49. R語言數字轉字符串:自動補0 - 台部落
在批量讀取文件的過程中,可能會遇到形如: 001.csv 002.csv ... 999.csv 如果使用for 循環語句,循環變量爲整型時,則需要將整形轉換爲字符串格式, ...
#50. R 軟體入門 - 臺北醫學大學
R 軟體資料屬性: 邏輯真假值(logical,T,F), 整數(integer),. 1. ## 雙倍精確度數字(double, real, numeric),. 2. ## 複數(complex), 文字字串(character, string),.
#51. 雜湊、符號為你自己學Ruby on Rails - 數字、字串、陣列
數字 、字串、陣列、範圍、雜湊、符號. 數字(Number); 字串(String); 陣列(Array); 範圍(Range); 雜湊(Hash); 符號(Symbol). Rails 不是一種程式語言,它是 ...
#52. 02-RDataEngineer-01-Parsing
這門課程將會帶大家走過一遍R 所提供的字串處理功能。 ... 如果都是兩個數字的話,我們可以透過 substring 函數直接擷取字串中的段落。 請同學輸入: ?substring 先看 ...
#53. 如何將資料為每列表示變數資料轉換為行資料 - RWEPA
感謝R user - Hsieh 提供此問題 ... 目前資料轉換正常,唯數值字料尚須轉換 ... 判斷將所有欄資料並轉換為數值資料,保留無法轉換為數值之字串資料
#54. 关于r:当一些数字包含逗号作为千位分隔符时,如何读取数据?
How to read data when some numbers contain commas as thousand separator?我有一个csv文件,其中一些数字值表示为字符串,并用逗号作为千位分隔符 ...
#55. R教學第9章:尋找和取代資料
R 教學第9章:尋找和取代資料在上一篇教學中,我們學會了如何從資料欄中取出你想要 ... 因此,只要把這串數字放到選取符號中的「列」的位置,每一列資料就會跑到排序後 ...
#56. R語言時間處理函式 - 程式前沿
1 POSIXct和POSIXlt 把表示時間的字串轉成時間型別資料,在R語言裡面有兩個基本的函 ... 除字串外還能夠轉換數字、因子等資料型別,適應性很強: as.
#57. 操作指令
方法如下:開啟R File Change dir ... 注意事項:. 名稱第一字必須為英文字母,其後可加上數字、字母或“.”,且R會將 ... a,b,c,d可為數字、邏輯(T、F)或字串;.
#58. 【Dart學習】--Dart之字串(String)的相關方法總結 - 程式人生
使用r建立原始raw字串(轉義字元等特殊字元會輸出出來,而不會自動被轉義) ... 字串與數字之間的轉換. 字串轉int數值 ... 數值轉字串保留精度.
#59. 字串- 維基百科,自由的百科全書
兩個字串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p ... 在現代程式語言中的多數字串是變長字串。儘管叫這個名字,所有變 ...
#60. R的package安裝及基本操作
“>"為提示符號; 當提示符號出現時表示R正在待命中, 可以隨時鍵入下一個 ... 數字5, -7,1.001, 1e+14 可以用運算子計算,可以轉成字串使用. 字串"NTU". 無法使用運算子.
#61. [Android] 3-25 String數字轉圖片 - 給你魚竿- 痞客邦
原理很簡單, 就是將輸入的String字串map到對應的圖片就好了private Bitmap ... [Android] 3-25 String數字轉圖片 ... R.drawable.ic_num_0,
#62. R 存活指令 - 語言分析與資料科學
文字字串(character):用"" 包起來。 is.character(). 實數(或數值) (numeric): is.numeric(). 整數(integer): is.integer(). 複數(complex): is.complex().
#63. Java 字串格式化整數零
南屯鰻魚飯; R輸出沒有[1],如何很好地格式化? given寬度? ... 整數轉字串前面補0,靠String.format可以做到格式化整形,字符串,日期等。
#64. 7. 輸入和輸出— Python 3.10.1 說明文件
要使用格式化字串文本(formatted string literals),需在字串開始前的引號或連續三 ... 有許多的值,像是數字,或list 及dictionary 等結構,使用這兩個函式會有相同的 ...
#65. r文字轉數字完整相關資訊 - 說愛你
r 文字轉數字-2021-05-31 | 星星公主2021年5月31日· r文字轉數字相關資訊,[PDF] R commands(11.09.13) 指令用法簡介2011年9 ... tw字元轉 ...
#66. 【從零開始學Dart 程式設計】字串資料型態 - HKT 線上教室
雙引號前缀一個r 則會顯示最原始raw 字串 ... 數字與字串互相轉換. //字串轉整數(string to int) var intVal = int.parse('100'); //字串轉浮點 ...
#67. Python 3 Tutorial 第二堂(2)數值與字串型態
數值型態(Numeric type) - int , long , float , bool , complex; 字串型態(String type ... 可以在字串前加上 r ,表示接下來後面是原始字串(Raw string)表示, ...
#68. 使用sprintf( ) 將數字轉成字串@ 程式專欄 - 隨意窩
在C 語言中可以呼叫atoi( ) 將字串轉成數字;. 但要將數字轉成字串的話並沒有內建的函數可以使用, 也許有人會建議可以使用itoa( ) 函數,
#69. R学习第八篇:日期和时间 - 博客园
函数strptime(),是string parse time的简称,返回POSIXlt日期。在解析日期时,必须指定文本和日期对应的位置,日期的格式使用%+字母来指定。 format(x, ...
#70. AutoHotkey: traditional & expression - 幽寒
因為AutoHotkey 不用宣告變數類別,所以數字類的值有可能是字串,也可能 ... 如果key是像數字的字串,會自動被轉成數字,所以r[a] 事實上變成r[1] 而 ...
#71. 輕鬆學習R語言學習筆記
l 因素向量(Factor)是儲存字串的資料結構,帶有層級(Levels)資訊。 ... l exp()函數使數值轉為e x ,e = 2.7182818尤拉數: > exp(2) [1] 7.389056.
#72. 字串的處理
字串 與數字系統的轉換. 執行指令字串. ○ Matlab提供了eval與feval函數,可用來對字串求值:. 表9.3.1 字串求值 ... r=(x^3+2*x^2+3*x+6)/(x^2+3);.
#73. 5.Python 數字、字串的定義、運算與格式化 - 原來如此By we ...
Python 數字、字串的定義、運算與格式化 超大 稍大 微大 ... in "Hello we-shop") # 輸出轉義字將r 或R 放在字串第一個引號前面print(r"\n") # 原本是 ...
#74. 如何將字串轉為數字做加總 - 藍色小舖
dim Astring,Bstring as string. Bstring="1+2+3+4+5+6" Astring="1+1+1+14+3+4" 請問我要將上敘其中一個字串6個數字做加總該如何撰寫是否一定要用 ...
#75. 第三章變數與運算式
由於字串的使用率極高,故我們將於3.1.9節介紹. 字串。 3.1.4 原始資料型態 ... \r. 回到該行第一格(Carriage Return). \ddd. 8進制數字指定Unicode(例如'H'可表示 ...
#76. JCX API : Class convert - WalkThing
double Byte字串轉成UNICODE字串. static java.lang. ... 阿拉伯數字轉國字數字中文繁體大寫. ... String format="10,5"; String num="111.22"; String r=convert.
#77. c 字串轉數字字串變數轉換數字 - Dykpo
字串 變數轉換數字 · C 語言入門教學:string 格式化(int 轉string) ,字串格式化(整數轉字串… · strtol(將字符串轉換成長整型數) · Excel-取出字串中的數字(ROW,COLUMN, ...
#78. 最長迴文子字串 - WiwiHo 的競程筆記
最長迴文子字串(Longest Palindromic Substring, LPS). 給一個字串 ... while(l - i >= 0 && r + i < n && T(l - i) == T(r + i)) i++; return i; } ...
#79. Python 字符串 - 菜鸟教程
Python 转义字符 ... 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符 ... 如果string 至少有一个字符并且所有字符都是字母或数字则返.
#80. Google 試算表函式清單- 文件編輯器說明
類型 名稱 描述 Google GOOGLETRANSLATE 將文字翻譯成其他語言。 瞭解詳情 Google IMAGE 在儲存格內插入圖片。 瞭解詳情 剖析器 TO_DATE 將指定數字轉換成日期。 瞭解詳情
#81. 如何使用Python 進行字串格式化 - TechBridge 技術共筆部落格
讀者可能會覺得很字串插值神奇,但事實上其背後原理是由Python 語法解析器把f-string 字串插值格式字串轉成一連串的字串常數和運算式,最後結合成最終的字 ...
#82. R 變數類型 - R 學習日誌
R 的變數類型有下列幾種: ... l 如為字串變數且格式為yyyy-mm-dd, 可用as.Date轉換 l 如為數字變數且格式為yyyymmdd, 須先用as.character轉為文字再 ...
#83. Lua 字串/字元
返回一個類似printf 的格式化字串. 7, string.char(arg) 和string.byte(arg[,int]), char 將整型數字轉成字元並連接, byte 轉換字符為整數值(可以指定某個字元,默任 ...
#84. wush978/DataScienceAndR - Gitter
謝謝老師,我是想統整各學期成績啦,所以才有一個線圖關係. Wush Wu. @wush978. 那你要先把字串轉成數字。 試試看as.integer / as.numeric 或是轉成時間
#85. Julia 程式設計基礎(六):玩轉字元和字串
ASCII 編碼使用1 個位元組來表示1 個字元。其中的7 位二進位制數字用於表示大寫和小寫的英文字母、 0 到 9 的數字、各種英文標點符號,以及一些不可列印字 ...
#86. E-tutor [程式設計][C_AR183-易] 數字跑馬燈
Input: 輸入資料有兩行,第一行是由空白隔開的一串數字( 最多20 個),第二行是一串左轉或右轉的命令,命令之間由空白字元隔開,每個命令包含一個L 或R 字 ...
#87. r - 如何将数据框列转换为数字类型? - ITranslater
regex-如何获取字符串中所有出现的Ruby正则表达式的匹配数据? dynamic-动态设置Ruby Obj的属性 · Ruby / Rails CSV解析,UTF-8中无效的字节序列 · Ruby ...
#88. 資料科學家的pandas 實戰手冊:掌握40 個實用 ... - LeeMeng
你可以從Excel、Google Sheet 或是網頁上複製表格並將其轉成DataFrame。 ... 在處理文本數據時,很多時候你會想要把一個字串欄位拆成多個欄位以方便 ...
#89. VB指令函數
CDbl 函數, 數值轉成雙精度浮點數 ... DateSerial 函數, 數個字串轉日期 ... R. Randomize 函數, 隨機數初始化宣告. Replace 函數, 取代字串中某些字串.
#90. 在Python 中反轉字串
string_reversed += str[i-1] 語句將 str[i-1] 的值儲存在反轉的字串中。 i=i-1 遞減索引,直到到達字串的開頭。 輸出: textCopy The Reversed String is ...
#91. R學習基礎筆記(一) Introduction、Vectors、Object、Factors
object可以是一個變數,也可以是一連串的數字,文字,甚至是函數,以及更複雜的東西。 ... 字串有時候,我們需要處理文字類型的object。
#92. 資料- 文字轉數字
文字轉數字. 可以用內建的parseInt() 函式將字串轉成整數。這個函式有個選擇性的第二個參數(在此建議你一定要指定),用以指定進位數. > ...
#93. 台灣R軟體Club
這個社團的目標為(1) R軟體相關新資訊分享(2) 經驗分享(3) 技術交流這類軟體與程式語言社團, ... 為甚麼反而跑出數字? ... 大家知道字串變數和因素變數的差別嗎?
#94. R語言:字符串處理與正則表達式 - 每日頭條
本文小結:. Python:. re.split(pattern, string[, maxsplit]). re.match(pattern, string[, flags]). re.search ...
#95. JSP Javascript _數值字串轉換 - Mark Chou的部落格- 痞客邦
數字 轉字串JSP字串處理1. integer to String : String str = Integer.toString(i); 2. double to String : String.
#96. 十五分鐘認識正規表達式,解決所有文字難題
正規表達式(Regular Expression),是一種用來描述字串 符合某個語法規則 ... 比對換行符號外的任意一個字元 const regex = /\d/ // 比對一個數字,相 ...
r字串轉數字 在 [程式] R的字串處理- 看板Statistics 的推薦與評價
[軟體程式類別]:
R
[程式問題]:
資料處理
[軟體熟悉度]:
中(3個月到1年)
[問題敘述]:
最近常在處理字串
發現自己會的 function 很不夠用
想多學點 function
我列出一些我常用的
希望能拋磚引玉
請各位高手能教我一些高招
[程式範例]:
前言 :
R 的字串處理 ,
要小心注意 character , factor , numeric 這三種物件的誤轉換和混用
factor 是一種很討厭的物件 ,
因為它在轉成數字和字串的時候 ,
常常會變成跟原本不一樣的東西 ,
建議資料處理的過程 ,
預設用 matrix 和 character 兩種而避免使用 data.frame
------------------------------------------------------------------
1.字串黏合
paste ("A","B",sep="") ---->>> "AB"
2.字串切割
strsplit("A.B",split=".",fixed=T) ---->>> "A" "B"
3.精確穩合
x <- c("AB","AA")
x %in% "AB" ---->>> TRUE FALSE
4.部份吻合 + (回傳 which)
x <- c("AB","AA")
grep("B",x) ---->>> 1
grep("A",x) ---->>> 1 2
grep("B",x,value=T) ---->>> "AB"
grep("B",x,value=T,invert=T) ---->>> "AA"
grep("C",x) ---->>> integer(0)
#若目的是要找 index , 建議改用 grepl
4-2.部份吻合 + (回傳判斷式)
x <- c("AB","AA")
grepl("B",x) ---->>> TRUE FALSE
4-3.部份吻合 + (回傳位置) + (回傳??)
x <- c("BBB","AAA","CCB")
regexpr("B",x) ---->>> 1 -1 3 (第一次 "hit" 的位置)
1 -1 1 (有無 "hit")
5.子字串
substr("human123456",start=1,stop=5) ---->>> "human"
!!注意!! 4-3 的 regexpr
與這個 substr 結合起來 ,
在寫 網頁Parser 的時候很好用
regexpr 能定義出 statr=多少
所謂的網頁Parser
就是你去下載某些 html 檔案
檢視原始碼
然後找出你需要的資料
再找出一些能 cut 的規則
用 strsplit 搭配 TR , TD 之類的字串去切出你要的資料
6.特定字元取代 (1st hit)
x <- "AABB"
sub("A",replacement="C",x) ---->>> "CABB"
6-2.全部特定字元取代 (global hit)
x <- "AABB"
gsub("A",replacement="C",x) ---->>> "CCBB"
7.計算字串長度
### 盡量別用這個 fuction
x <- c("A","AAA","AAAAA")
nchar(x) ---->>> 1 3 5
nchar(as.factor(x)) ---->>> 1 1 1
8.多重字元(串)貼合 (矩陣內)
x <- matrix(letters[1:6],2,3)
apply(x,1,paste,collapse="") ---->>> "ace","bdf"
apply(x,2,paste,collapse="") ---->>> "abc","def"
9. 字元反轉
x <- c("A B","*.")
sapply(lapply(strsplit(as.character(x), NULL), rev), paste, collapse="")
[1] "B A" ".*"
10.字元檢查
x <- c("A B","*.")
unique(unlist(strsplit(as.character(x),split="",fixed=T)))
[1] "A" " " "B" "*" "."
-----------------------------------------------------------
Regular expression : 字串模糊比對 , 或特定字母排列模式的抓取
在R內
基本上分成3種
Basic regular expression (BRE) --> extended = FALSE
Extended regularexpression (ERE) --> extended = TRUE (預設)
perl-like (perl) --> perl = TRUE
雙冒號代表我測試過且成功
單冒號代表網路上抓下來或是測試失敗
--------------------------------------------------------------
通用部分
{,}
* :: {0, } 至少出現0次, 最多無限多次
+ :: {1, } 1 無限多次
? :: {0,1} 0 1
[Aa] :: A 或 a
[^1-9] :: not 1:9
[1-9] :: 1:9
[a-z] :: a b c ... z
[A-Z] :: A B C ... Z
[a-zA-Z] :: 所有英文字母
[W-z] :: WXYZabc....z
[w-Z] :: 不可使用!
(AB) :: 括號一次收集多個字元 ### 一種延伸字串的寫法
舉例 :
x <- c("company","companies",)
可以用以下兩種寫法
1. grep("[company|companies]",x)
2. grep("compan(y|ies)",x)
第二種在大資料的時候會比較快
$ :: 字尾限定
^ :: 字首限定
| :: "ABC|EFG" --> grep("ABC"or"DEF",x)
. :: 任意字元
-----------------------------------------------------
ERE , extended = TRUE
digit (數字)
\\d :: [0-9]
\\D :: [^0-9]
[[:digit:]] :: 同上
[^[:digit:]] :: 同上
blank (空白)
\\s :: 能切開 " " 或 "\t"
\\S :: 切開非空白及 tab 的字元
[[:blank:]] :: 同上
[^[:blank:]] :: 同上
AlphaBet + Digit (正常字元)
\\w :: [0-9a-zA-Z]
\\W :: [^0-9a-zA-Z]
[[:alnum:]] :: 同上
[^[:alnum:]] :: 同上
AlphaBet (英文字元)
[[:alpha:]] :: 同上
[^[:alpha:]] :: 同上
特殊符號
[[:punct:]] :: ! " # $ % & ' ( ) * + , - .
/ : ; < = > ? @ [ \ ] ^ _ ` { | } ~
[^[:punct:]] :: 英文字 , 數字 (注意! , \t 和 \n 都會被切掉)
注意 ! 正斜線這個符號很容易與其他 regular expr 混淆
必須仔細檢查 "\" 存在的字串
可印符號
[[:print]] :: 所有字元 (數字,字母,特殊符號,空白)
\n , \t , \001 除外
16進位字元
[[:xdigit:]] :: 16進位有關英文或數字
[0-9a-fA-F]
大小寫英文字元
[[:upper:]] :: 大寫英文字元 [A-Z]
[^[:upper:]] :: 非大寫 [^A-Z]
[[:lower:]] :: 小寫 [a-z]
[^[:lower:]] :: ^[a-z]
注意 "\t" 還是會被留下來
空白和換行等
[[:space:]] :: " " , \t , \n , \f , \r
(\f : 換行但不回到行頭)
(\r : 回到行頭並消除此行內所有的文字)
P.S. 這兩種不常用,當豆知識即可
[[:graph:]] :: [A-Za-z0-9]再加[["punct"]]
----------------------------------------------------------
perl = TRUE
\\w : [A-Za-z0-9_]
\\W : [^A-Za-z0-9_]
\\s : [\t\n\r\f]
\\S : [^\t\n\r\f]
\\d : [0-9]
\\D : [^0-9]
----------------------------------------------------------
regular expression 工事中 (未完)
感覺這篇被我當筆記來用了
reference:
1. https://www.rtfiber.com.tw/~changyj/
2. https://www.stat.psu.edu/~dhunter/R/html/base/html/regex.html
----------------------------------------------------------
大小寫切換
TRUTH <- c("Abc","ABC")
a <- gsub("(\\w)","\\L\\1",TRUTH,perl=TRUE) ---> "abc","abc"
b <- gsub("^(\\w)","\\U\\1",a,perl=TRUE) ---> "Abc","Abc"
同上 , 非常神秘的 Bug !?
T123 <- c("Tgfbr1","Cd320","Ndrg3","Aldoa","Bckdk","Tmed3","Hfe2")
> gsub( "(\\w)", "\\L\\1" , T123 , perl=T)
[1] "LTLgLfLbLrL1" "LCLdL3L2L0" "LNLdLrLgL3"
[4] "LALlLdLoLa" "LBLcLkLdLk" "LTLmLeLdL3"
[7] "LHLfLeL2"
> gsub( "(\\w)", "\\L\\1" , T123 , perl=TRUE)
[1] "tgfbr1" "cd320" "ndrg3" "aldoa" "bckdk" "tmed3"
[7] "hfe2"
---------------------------------------
消除多餘空白
> x <- "Hey! Apple "
> gsub(" {2,}","",x)
[1] "Hey! Apple" ### 容忍一個空白 , 但兩個以上至無限大則消除
---------------------------------------
在處理混合字串與數字的資料矩陣的時候
常常需要在 data.frame 和 matrix 之間切換
有時候會字串會被一些預設的空白字元夾住
ex:
"1" , "15" , "333"
經過轉換以後
" 1" , " 15" , "333" (fit 最長字串的長度)
> DATA <- gsub("^ *| *$",as.matrix(DATA))
---------------------------------------
### 一些參考的 pattern
1. "^\\d+$" ### 純數字的欄位 ###
2. "^ *| *$" ### 字首字尾的空白(搭配 gsub) ###
3. "^[0][\\.]{0,1}[0]*$" ### "0" "0.0" "0.00" "0.000" "0.0000" ,
bug 是 "0." "00"
####################################################################
放一些 linux 下的好用指令
光用 R 來做字串處理不夠用
原因在於若處理的檔案太大
光是讀進 R 就累死人
這邊主要是應用在檔案減肥
文字檔案
rs123\t0|1:0000\tAAAA
rs456\t1|0:0000\tBBBB
###################
橫向
grep [-w : word]
[-f : 給 pattern file]
[-F : 精確比對] ### 若要搜尋固定字串 , -F必下 (快超多)
1. cat 文字檔案|grep -w 'rs' ### 沒東西
2. cat 文字檔案|grep -w -F 'rs123' ### 出第一行
3. car 文字檔案|grep -w '^rs.*$' ### 二行皆出
###################
縱向
cut [-d : 用tab切開會是3個column的矩陣]
1. cut -d'\t' -f1,2 原檔 > 新檔 ### 留下 1 and 2 columns
###################
橫向
sed
1. sed -n '6,$p' 原檔 > 新檔 ### 從第六行開始 , print 至尾行
### 或可理解成, 把 1~5行切掉
2. sed 's/:\S*/HAHA/g' 原檔 > 新檔 ### s=取代 , g=global
### 把紅色的正規 pattern 取代成綠色
###################
當檔案有 10000000 rows , 讀不進 R 怎辦?
就算讀進 R , 資料太大一直 SWAP 電腦動不了怎麼辦?
經過一番苦戰
我建議以下的思考方式
0. 先透過上述方式
直接在終端機把檔案減肥
1. 檔案列數 <- system("wc -l 檔案",intern=TRUE)
LOOP <- ceiling(檔案列數 / 5000)
for(g in 1:LOOP) ### 用while可省前兩行
{ tmp <- read.table(檔案,skip=5000*(g-1),nrow=5000) ### 但我只熟 for
expr(中間的各種處理)
write.table(tmp,g)
Sys.sleep(5) ### 給一點時間讓電腦回氣
}
2. system("cat 小檔案1 小檔案2 小檔案3 .... > 總檔案") ### 檔案 rbind()
雖然不是最快的方法
但 Over night 是一定可以把檔案處理完的
以上
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.239.247
※ 編輯: gsuper 來自: 140.113.239.247 (07/02 22:21)
※ 編輯: gsuper 來自: 140.113.239.247 (07/02 22:22)
※ 編輯: gsuper 來自: 140.113.239.247 (07/02 22:48)
※ 編輯: gsuper 來自: 140.113.239.247 (07/02 23:12)
※ 編輯: gsuper 來自: 140.113.239.247 (07/02 23:30)
※ 編輯: gsuper 來自: 140.113.177.3 (07/03 01:41)
※ 編輯: gsuper 來自: 140.113.177.3 (07/03 03:12)
※ 編輯: gsuper 來自: 140.113.239.247 (07/03 21:39)
※ 編輯: gsuper 來自: 140.113.239.247 (07/08 10:32)
※ 編輯: gsuper 來自: 140.113.239.247 (07/08 17:19)
※ 編輯: gsuper 來自: 140.113.239.247 (07/08 17:28)
※ 編輯: gsuper 來自: 140.113.239.247 (08/03 22:45)
※ 編輯: gsuper 來自: 140.113.239.247 (08/03 22:47)
※ 編輯: gsuper 來自: 140.113.239.247 (09/03 21:49)
※ 編輯: gsuper 來自: 140.113.239.247 (09/03 21:55)
※ 編輯: gsuper 來自: 140.113.239.247 (09/03 22:02)
※ 編輯: gsuper 來自: 140.113.239.247 (09/03 22:03)
※ 編輯: gsuper 來自: 140.113.239.247 (09/03 22:19)
※ 編輯: gsuper 來自: 140.113.239.247 (09/03 23:10)
※ 編輯: gsuper 來自: 140.113.239.247 (09/03 23:35)
※ 編輯: gsuper 來自: 140.113.239.247 (09/03 23:44)
※ 編輯: gsuper 來自: 140.113.239.247 (09/21 22:26)
※ 編輯: gsuper 來自: 140.113.239.247 (09/21 22:54)
※ 編輯: gsuper 來自: 140.113.239.247 (09/29 13:26)
※ 編輯: gsuper 來自: 140.113.239.247 (10/04 13:54)
※ 編輯: gsuper 來自: 140.113.239.247 (10/04 14:02)
※ 編輯: gsuper 來自: 140.113.239.247 (12/03 17:13)
※ 編輯: gsuper 來自: 140.113.56.120 (12/21 02:15)
※ 編輯: gsuper 來自: 140.113.56.120 (12/29 03:27)
※ 編輯: gsuper 來自: 140.113.56.120 (12/29 03:28)
※ 編輯: gsuper 來自: 140.113.239.247 (02/17 16:33)
※ 編輯: gsuper 來自: 140.113.239.247 (02/21 12:43)
※ 編輯: gsuper 來自: 140.113.239.247 (06/12 19:52)
※ 編輯: gsuper 來自: 140.113.239.247 (06/12 19:52)
※ 編輯: gsuper 來自: 140.113.239.247 (11/09 14:28)
※ 編輯: gsuper 來自: 140.113.239.247 (11/09 14:32)
※ 編輯: gsuper 來自: 140.113.239.247 (11/09 18:58)
※ 編輯: gsuper 來自: 140.113.239.247 (11/09 19:03)
※ gsuper:轉錄至看板 R_Language 03/30 20:33
... <看更多>