当前位置: 首页 > 知识库问答 >
问题:

如何从R中预先存在的字符向量创建修改后的字符向量?

汪鸿波
2023-03-14

我对R很陌生,我知道这是一个非常简单的问题,但我似乎无法理解。

我得到了字符矢量more.colors:

more.colors <- c("red", "yellow", "blue", "green", "magenta", "cyan")

我必须用更多的。为向量、rep()和seq()添加颜色以创建向量:

"red" "yellow" "blue" "yellow" "blue" "green"
"blue" "green" "magenta" "green" "magenta" "cyan"

到目前为止,我只有c(more.colors[1:3],more.colors[2:3],more.colors[4],more.colors[3:4],more.colors[5],more.colors[4:5],more.colors[6])不使用rep()或seq()。

任何帮助都将不胜感激!

共有2个答案

毛景曜
2023-03-14

这将有助于:

new.colors <- c()

for (i in 1:(length(more.colors)-2)) {
  new.colors <- c(new.colors, more.colors[i:(i+2)])
}
魏朗
2023-03-14

如果查看目标向量的序列,它相当于more。颜色[c(1,2,3,3,4,3,4,4,4,5,6)],因此这实际上是使用repseq获取序列c(1,2,3,2,3,4,3,4,5,4,4,4,4,5,6)

我认为这个练习让你使用两种不同的方法;也就是说,如果你做了each=n,你可以重复向量的每个元素n次,你可以得到整个向量重复n次,如果您传递times=n

所以这里的解决方案是将序列“1到3”重复四次,然后将其添加到序列“0到4”,其中每个元素重复三次

more.colors[rep(seq(0, 3), each = 3) + rep(seq(1, 3), times = 4)]
#> [1] "red"     "yellow"  "blue"    "yellow"  "blue"    "green"   "blue"   
#> [8] "green"   "magenta" "green"   "magenta" "cyan"
 类似资料:
  • 本文向大家介绍如何在R中的字符串向量中找到相似的词?,包括了如何在R中的字符串向量中找到相似的词?的使用技巧和注意事项,需要的朋友参考一下 有时字符串向量中的字符串有拼写错误,我们希望提取相似的单词以避免这种拼写错误,因为相似的单词可能表示单词的正确和不正确形式。这可以通过使用 agrep 和 lapply 函数来实现。 在线示例1 输出结果 在线示例2 输出结果 在线示例3 输出结果

  • 我有一个函数,它返回R中的如下向量 因为它是一个命名的向量,所以我不能在它上面测试下面的内容 is.na() is.null 相同(vec,字符(0) 如何对其编写测试以检查它是否是命名字符(0)向量,然后将其分配给空值?

  • 我有一根绳子: 给定另一个字符串 我想做的是替换<code> bb_seq的顺序,在中添加一个字符,得到: <代码>的总长度?保证与< code>bb_seq相同。 我如何用R实现这一点? 我尝试了这个,但失败了: 我对非正则表达式解决方案持开放态度。

  • 与结构向量相比,我有一个过滤掉字符串输入vec的工作解决方案。但是,我的代码似乎很复杂,我尝试使用iter::filter(https://doc.rust-lang.org/stable/std/iter/struct.Filter.html)简化代码。这引起了问题,因为迭代器返回的值是引用,不能直接使用。似乎我对iter的理解以及在结构向量中可以做什么需要刷新。下面是工作的简化过滤代码: 有没

  • 我正在尝试将嵌套列表结构转换为DataFrame。该列表类似于以下内容(它是来自解析的JSON的序列化数据,使用httr包读取)。 编辑:我最初的示例数据太简单了。实际数据是不完整的,这意味着并非每个对象都存在所有变量,并且一些列表元素是空的。我编辑了数据来反映这一点。

  • 我有以下格式的数据。向量的第一个元素指的是标题,向量的第二个到底部指的是针对标题的值。我希望以表格/结构化格式(或带有标题和值的数据框)放置数据。