将随机变量分配给两个变量的交互的最佳方法是什么?例如,在此代码中:
colors <- ('blue', 'green', 'red')
df <- data.frame(A = c(0,0,0,0,1,1,1,1),
B = c(0,0,1,1,1,1,0,0))
我希望A和B的每个组合具有随机颜色(例如,使用samp()
)。但是我不确定如何使用嵌套的for
循环。
A B RandColor
0 0 'blue'
0 0 'blue'
0 1 'red'
0 1 'red'
1 0 'green'
1 0 'green'
1 1 'red'
1 1 'red'
答案 0 :(得分:3)
如果我理解你想要什么,这应该有效:
df$RandColor <- sample(cols, length(levels(interaction(df))), replace=T)[interaction(df)]
答案 1 :(得分:3)
您可以尝试:
colors[as.integer(interaction(df,drop=TRUE)) %% length(colors) +1]
通过这种方式,每个组合将始终具有相同的颜色(如果它在df
中出现多次),但如果color
的长度小于 <filter-name>WicketFilter</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationFactoryClassName</param-name>
<param-value>
org.apache.wicket.spring.SpringWebApplicationFactory
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/resources/applicationContext.xml</param-value>
</init-param>
,则许多组合将具有相同的颜色组合的数量。