supposons que vous avez df nommé dataframe: alors vous pouvez écrire:
randvar = sample(c('A','B','C'),size = nrow(df),prob = c(0.2,0.3,0.5),replace = TRUE)
df$var = randvar
Supposons que vous voulez que le "A" est à juste titre 20% pour cent, alors ne "B" à 30% et "C" dans 50% alors il n'est pas un code de ligne, supposons que votre c (0.2,0.3,0.5) * df_size est tout entier ma réponse est:
n = nrow(df)
df$var = "C" #initialize all value to be "C"
index = 1:n
indexa = sample(index,0.2*n) #pick 20% index for "A"
indexb = sample(index[-indexa],0.3*n) #pick 30% index for "B" need to rule out the "A"s you already picked
df$var[indexa] = "A" #assign "A" to df$var at indexa
df$var[indexb] = "B" #assign "B" to df$var at indexb
#the rest 50% is "C"
'échantillon (c ("A", "B", "C"), nrow (df), prob = c (0.2, 0.3, 0.5), replace = TRUE) 'échantillonne aléatoirement, mais parce que c'est aléatoire vous ne vous retrouvez pas avec une division exacte de 20/30/50 - Avez-vous besoin d les proportions exactes ou voulez-vous échantillonner selon ces probabilités? – Marius