r - 如何使用 seq() 和 rep() 和 paste() 生成特定向量?
问题描述
我试图在不使用
c()
:
的情况下生成以下向量a1, b2, b3, c4, c4, c6
。我真的很难受。我尝试制作一个简单的 python 函数来帮助可视化它:
listy = []
size = 2
lets = ["a", "b", "c"]
iterator = 1
for i in range(1, 4):
let = lets[i-1]
for j in range(3-size):
listy.append(let + str(iterator))
iterator += 1
size -= 1
print(listy)
但我无法获得与在 R 中工作类似的任何东西。我将非常感谢一些帮助。关于我得到的最接近的是:
paste(rep(1:6), rep(letters[1:3]))
但很显然,那是遥不可及的。我将不得不使用 for 循环来生成这个吗?似乎必须有一种更简单的方法......我是矢量生成的新手,而且这些功能似乎一点也不直观。如果你能在正确的方向上戳一下,我相信我能弄清楚。谢谢!
解决方案
一种方法是:
vec <- letters[1:3]
tmp <- rep(vec, seq_along(vec))
paste0(tmp, seq_along(tmp))
#[1] "a1" "b2" "b3" "c4" "c5" "c6"
通过硬编码,这类似于:
paste0(rep(c('a', 'b', 'c'), 1:3), 1:6)
推荐阅读
- docker - 如何将应用程序打包到能够在 Kubernetes 中的 Spark 集群上运行的 docker 镜像中?
- python - 如何在 tkinter 中创建一个全局变量?
- java - 如何在 Java 中处理陈旧的池连接
- apache - 通过 Apache 将特定用户代理限制为 Internet Explorer?
- javascript - 最初填充的道具值,然后不在反应js中
- node.js - 部署MEAN堆栈,Mongo没有输出结果
- php - 如何在 Web 开发的客户端安全地存储/获取用户信息?
- powerbi - 如何在 Power BI 中计算 MAX 测量值?
- css - 单选按钮背景并选中
- flutter - Flutter:如何将麦克风的原始音频信号实时存入内存?