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
我已阅读建议使用 gsub
、stri_replace_all_charclass
或 strsplit
的其他条目。但恐怕我需要帮助来实现这个。
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。对于漂亮的打印数据帧也非常方便。
我想缩短 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
的其他条目。但恐怕我需要帮助来实现这个。
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。对于漂亮的打印数据帧也非常方便。