You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何反转数据框字符串变量内的单词顺序?

解决R语言中反转字符串单词顺序的问题

问题分析

你原代码的问题在于:strsplit()返回的是列表对象,每个列表元素对应原字符串拆分后的单词向量。直接对整个列表调用rev(),是反转了列表中元素的整体顺序(而非每个元素内部的单词顺序),再用paste()拼接时,会把列表的结构文本直接输出,导致结果不符合预期。

修正后的解法

方法1:Base R实现

先修正原数据框的创建问题(原代码创建3行数据框但赋值4个元素会报错),再用sapply()遍历拆分后的列表,逐个处理每个字符串的单词反转:

# 正确创建数据框
mydata <- data.frame(uni = c("University of Texas", "University of Washington", 
                             "Harvard University", "The Scripps Research Institute"))

# 生成反转单词顺序的新变量
mydata$uni_revs <- sapply(strsplit(mydata$uni, " "), function(x) paste(rev(x), collapse = " "))

方法2:Tidyverse实现

如果习惯用tidyverse工具链,可结合dplyr和stringr处理:

library(dplyr)
library(stringr)

mydata <- mydata %>%
  mutate(uni_revs = str_split(uni, " ") %>%
           map_chr(~paste(rev(.x), collapse = " ")))

验证结果

运行后mydata$uni_revs的结果为:

[1] "Texas of University"                "Washington of University"          
[3] "University Harvard"                 "Institute Research Scripps The"

(注:你预期结果中的"University Havard"应为笔误,正确结果是"University Harvard")

内容的提问来源于stack exchange,提问作者EmilA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:17:15