R根据inter分配随机变量

时间:2016-01-25 21:27:30

标签: r

将随机变量分配给两个变量的交互的最佳方法是什么?例如,在此代码中:

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'

2 个答案:

答案 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> ,则许多组合将具有相同的颜色组合的数量。