拆分与拼接
本课属于 Coddy R 学习旅程的“逻辑与流程”单元。第 3 课,共 64 课。
strsplit(x, split) 会在每个分隔符处切分字符串。它会为每个输入字符串返回一个列表,其中包含一个字符向量,因此可以使用 [[1]] 获取单个字符串切分后的各部分。
csv <- "red,green,blue"
parts <- strsplit(csv, ",")[[1]]
print(parts)
print(length(parts))输出:
[1] "red" "green" "blue"
[1] 3paste() 的作用正好相反。使用 collapse 时,它会将一个向量中的元素连接成一个字符串,并在它们之间插入 collapse 文本。sep 则会逐个元素地插入到各个参数之间。
words <- c("one", "two", "three")
print(paste(words, collapse = "-"))
print(paste(words, 1:3, sep = "_"))输出:
[1] "one-two-three"
[1] "one_1" "two_2" "three_3"输入的文本通常会在分隔符周围带有空格。trimws() 会移除每个元素开头和结尾的空格:
raw <- " apples , pears,plums "
items <- trimws(strsplit(raw, ",")[[1]])
print(items)
print(paste(rev(items), collapse = " | "))输出:
[1] "apples" "pears" "plums"
[1] "plums | pears | apples"对向量使用 strsplit() 会为每个字符串返回一个列表元素,因此每个输入行都会保留自己的各个部分:
lines <- c("a,b", "c,d,e")
parts <- strsplit(lines, ",")
print(length(parts))
print(parts[[2]])输出:
[1] 2
[1] "c" "d" "e"挑战
简单完成 hashtags(line)。line 中包含由逗号分隔的标签,标签周围可能有空格。返回一个字符串,其中每个标签前面都加上 #,并用单个空格分隔: r, data ,stats 会变成 #r #data #stats。
提供的代码会读取这一行并打印返回值。
亲手试试
hashtags <- function(line) {
# 在这里编写你的代码
line
}
# 提供的输入/输出代码:保持原样
input <- suppressWarnings(readLines(file("stdin")))
cat(hashtags(input[1]), sep = "\n")
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: R 在线编译器