generating 1000 names with replacement using r_data_frame
Rdub2 opened this issue · 8 comments
May be problem with passing arguments to r_data_frame.
works
x <- data.frame(name(1000, replace = TRUE))
fails, doesn't pass replace = TRUE.
x <- r_data_frame(1000,name,replace = TRUE)
Error in sample.int(length(x), size, replace, prob) :
cannot take a sample larger than the population when 'replace = FALSE'
To use arguments to a variable function you need to use parenthesis as in:
x <- r_data_frame(n =1000,
name(replace = TRUE)
)
I'm closing this feel free to comment. It would help future posters if you let them know if this solved your issue.
Yes, this solved the single variable issue. Thank you.
However multiple variables do no work with this syntax. Maybe there is a workaround.
x <- data.frame(
name(10000, replace = TRUE),
sex(10000, replace = TRUE)
)
Why do you need replace = TRUE
on the sex variable? Also why are you using data.frame
?
started with r_data_frame, but I need sampling with replacement. Name per se not needed, but thats the variable in which I originally encountered the problem. I can work around it, it's just not knowing what parameters to use to consistently cast it to a data frame.
#works with N < 1000
r_data_frame(
n = 100,
name,
sex
)
I don't understand. What I showed above works as you want I believe... just add new variables to it as follows:
r_data_frame(
n = 10000,
name(replace = TRUE),
sex
)
OK. That works.
But, then switching back to no replace, how would you could for error in?:
y <- r_data_frame(
- n = 10000,
- name(replace = FALSE),
- sex
- )
Error in sample.int(length(x), size, replace, prob) :
cannot take a sample larger than the population when 'replace = FALSE'
#Works for n<1000
There are only about 1000 names in the vector I select from. If you don't replace and want a sample larger than this it will throw an error. You have two options
- use replacement
- create your own names function with a vector that contains more names