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

R: How to shorten data frame values to first character

我想缩短 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 的其他条目。但恐怕我需要帮助来实现这个。

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"

您可以使用strtrim

df$col1 <- strtrim(df$col1, 1)

你需要的是子串函数:

df$col1 <- substr(df$col1, 1, 1)

我同意罗宾的观点。 使用 substr 或 substring 函数将直接完成任务,而无需安装任何包。

df$col1 <- substr(df$col1, 1, 1)

或 df$col1 <- 子字符串(df$col1,1,1)

使用语法substr(目标向量,开始位置,结束位置)

如果您想缩短整个数据帧的(字符串)值 df,您可以使用:

apply( df, 2, strtrim, 4)

这会将所有字符串缩短为 4。对于漂亮的打印数据帧也非常方便。