我rep()在R中使用带有向量的functon:
c("x","y")[rep(c(1,2,2,1), times=4)]
Run Code Online (Sandbox Code Playgroud)
其输出为:
"x" "y" "y" "x" "x" "y" "y" "x" "x" "y" "y" "x" "x" "y" "y" "x"
Run Code Online (Sandbox Code Playgroud)
我不明白为什么x y y x在这里重复。如果使用rep(c(1,2,2,1), times=4),它将重复1 2 2 1四次。
为什么使用x和y在这里?
您的rep()代码产生向量:
> rep(c(1,2,2,1),times=4)
[1] 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1
您可以c("x","y")使用向量的索引来引用向量中的元素,例如:
> c("x","y")[1]
[1] "x"
提供向量中位置1处的元素,在这种情况下为"x"。
您还可以使用索引向量多次引用此元素,例如:
> c("x","y")[c(1,1,1,1,1)]
[1] "x" "x" "x" "x" "x"
返回向量中位置1的元素5次。
因此,当您提供R与c("x","y")[rep(c(1,2,2,1), times=4)]相同的时 c("x","y")[c(1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1)],您返回的是相同的模式,但是将这些值替换为向量中位于这些索引处的元素。
因此,您将返回向量的1st,2nd,2nd和1st元素重复4次,而不是重复重复1,2,2,1 4次。
| 归档时间: |
|
| 查看次数: |
11072 次 |
| 最近记录: |