R:如何将数据帧值缩短为第一个字符

时间:2015-03-11 10:45:25

标签: r string character-encoding gsub strsplit

我想缩短data.frame的一列值。现在,每个值都包含许多字母,例如

df$col1
[1] AHG    ALK    OPH   BCZ   LKH    QRQ    AAA   VYY

我需要的只是第一个字母:

df$col1
[1] A    A    O   B   L    Q    A   V

我已阅读其他建议使用gsubstri_replace_all_charclassstrsplit的条目。但我担心我需要帮助才能实现这一点。

4 个答案:

答案 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(目标向量,起始位置,停止位置)