我想缩短data.frame的一列值。现在,每个值都包含许多字母,例如
df$col1
[1] AHG ALK OPH BCZ LKH QRQ AAA VYY
我需要的只是第一个字母:
df$col1
[1] A A O B L Q A V
我已阅读其他建议使用gsub
,stri_replace_all_charclass
或strsplit
的条目。但我担心我需要帮助才能实现这一点。
答案 0 :(得分:7)
您可以使用strtrim
df$col1 <- strtrim(df$col1, 1)
答案 1 :(得分:3)
stringr包很棒:
require(stringr)
df <- data.frame(col1 = c("AHG", "ALK", "OPH", "BCZ", "LKH", "QRQ", "AAA", "VYY"))
str_sub(df$col1, 1, 1)
[1] "A" "A" "O" "B" "L" "Q" "A" "V"
答案 2 :(得分:1)
你需要的是子串函数:
df$col1 <- substr(df$col1, 1, 1)
答案 3 :(得分:1)
我同意罗宾的观点。 使用substr或substring函数将直接执行该操作,而无需安装任何包。
df$col1 <- substr(df$col1, 1, 1)
或 df $ col1&lt; - substring(df $ col1,1,1)
使用语法substr(目标向量,起始位置,停止位置)