r - 如何根据条件将向量元素与前一个元素粘贴在一起

标签 r string loops if-statement

我正在使用 rvest 从网络源获取数据然后我得到了一个向量,比如 x ,其长度与我的其他向量不同(因此我无法将它们组合成表格)。切入正题:原因是每次看到元素'nuovo' (位置 x[11] )在 vec 中,我知道它应该与前一个完全粘贴,然后我还应该取消元素 'nuovo' 因为我需要一个 25 长度的向量。

x  = c("Vetrina" ,"Vetrina" ,"Vetrina",
"Vetrina" ,"Vetrina", "Vetrina",
"Vetrina" ,"Vetrina" ,"Vetrina",
"Vetrina" ,"nuovo" ,"Vetrina",
"Vetrina" ,"Vetrina" ,"Vetrina",
"Vetrina" ,"Vetrina" ,"Vetrina",
"Vetrina" ,"Vetrina", "Vetrina",
"Vetrina" ,"Vetrina", "Vetrina",
"Vetrina" ,"Vetrina")

length(x) = 26

然后我需要 x像是:
x  = c("Vetrina" ,"Vetrina" ,"Vetrina",
"Vetrina" ,"Vetrina", "Vetrina",
"Vetrina" ,"Vetrina" ,"Vetrina",
"Vetrina nuovo","Vetrina",
"Vetrina" ,"Vetrina" ,"Vetrina",
"Vetrina" ,"Vetrina" ,"Vetrina",
"Vetrina" ,"Vetrina", "Vetrina",
"Vetrina" ,"Vetrina", "Vetrina",
"Vetrina" ,"Vetrina")

length(x) = 25

最佳答案

这是 base 中的解决方案R. 首先你得到nuovo的位置然后 paste它到以前的位置。最后你删除 nuovo职位。

x <- c("Vetrina" ,"Vetrina" ,"Vetrina",
       "Vetrina" ,"Vetrina", "Vetrina",
       "Vetrina" ,"Vetrina" ,"Vetrina",
       "Vetrina" ,"nuovo" ,"Vetrina",
       "Vetrina" ,"Vetrina" ,"Vetrina",
       "Vetrina" ,"Vetrina" ,"Vetrina",
       "Vetrina" ,"Vetrina", "Vetrina",
       "Vetrina" ,"Vetrina", "Vetrina",
       "Vetrina" ,"nuovo")

pos <- x == "nuovo"
x[c(pos[-1], F)] <- paste(x[c(pos[-1], F)], "nuovo")
x <- x[!pos]

length(x)
> 24

关于r - 如何根据条件将向量元素与前一个元素粘贴在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56754091/

相关文章:

r - 动态计算参数值

r - broom::tidy 多项式回归失败

使用命令行选项从 R 中运行 Windows 可执行文件

java - String.isEmpty() 和 String.equals (""之间的区别)

r - 如何使用存储在向量中的变量名称而不使用引号?

javascript - 在完成之前,事情发生在我的 for 循环之外(javascript)

r - 在 R 子集设置中不使用子集()并以更简洁的方式使用 [ 来防止拼写错误?

c - K 和 R C 编程练习 1-19

c# - 在 C# 的方法中使用 'ref' 关键字作为字符串参数的影响?

java 。为什么这个for循环不能正常工作