Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个data.frame,添加N行采样函数_R_Dataframe_Loops - Fatal编程技术网

创建一个data.frame,添加N行采样函数

创建一个data.frame,添加N行采样函数,r,dataframe,loops,R,Dataframe,Loops,我正在努力创建一个随机样本的数据帧。我举一个可复制的例子: 我有一些与此类似的自定义函数: vendorSelector <- function() { sample(c("Paco", "Juan", "Alex", "Marc"), 1) } productSelector <- function() { sample(c("Water", "Oil"

我正在努力创建一个随机样本的数据帧。我举一个可复制的例子:

我有一些与此类似的自定义函数:

vendorSelector <- function() {
  sample(c("Paco", "Juan", "Alex", "Marc"), 1)
}

productSelector <- function() {
  sample(c("Water", "Oil", "Carbon", "Wood"), 1)
}

vendorSelector您可以通过包含一个参数来更改函数,然后采样n个观察值:

productSelector <- function(n) {
  sample(c("Water", "Oil", "Carbon", "Wood"), n, replace = T)
}

vendorSelector <- function(n) {
  sample(c("Paco", "Juan", "Alex", "Marc"), n, replace = T)
}

data <- data.frame(Vendor = vendorSelector(10), Product = productSelector(10),
                   stringsAsFactors = FALSE)

data

       Vendor Product
1    Paco     Oil
2    Paco  Carbon
3    Juan     Oil
4    Paco     Oil
5    Marc  Carbon
6    Juan     Oil
7    Juan  Carbon
8    Juan    Wood
9    Alex     Oil
10   Paco    Wood

productSelector您可以通过包含一个参数来更改函数,然后采样n个观察值:

productSelector <- function(n) {
  sample(c("Water", "Oil", "Carbon", "Wood"), n, replace = T)
}

vendorSelector <- function(n) {
  sample(c("Paco", "Juan", "Alex", "Marc"), n, replace = T)
}

data <- data.frame(Vendor = vendorSelector(10), Product = productSelector(10),
                   stringsAsFactors = FALSE)

data

       Vendor Product
1    Paco     Oil
2    Paco  Carbon
3    Juan     Oil
4    Paco     Oil
5    Marc  Carbon
6    Juan     Oil
7    Juan  Carbon
8    Juan    Wood
9    Alex     Oil
10   Paco    Wood

productSelector一次直接对1000行进行采样,您需要设置
replace=T
,因为采样项目的数量大于原始项目集

data.frame(供应商=样品(c(“Paco”、“Juan”、“Alex”、“Marc”),1000,替换=T),产品=样品(c(“水”、“油”、“碳”、“木”),1000,替换=T),
stringsAsFactors=FALSE)

一次直接对1000行进行采样,您需要设置
replace=T
,因为采样项目的数量大于原始项目集

data.frame(供应商=样品(c(“Paco”、“Juan”、“Alex”、“Marc”),1000,替换=T),产品=样品(c(“水”、“油”、“碳”、“木”),1000,替换=T),
stringsAsFactors=FALSE)

谢谢,效果很好!谢谢,效果很好!谢谢,您的解决方案给了我继续我的数据项目的想法,也解决了我遇到的问题!谢谢,您的解决方案给了我继续我的数据项目的想法,也解决了我遇到的问题!
productSelector <- function(n) {
  sample(c("Water", "Oil", "Carbon", "Wood"), n, replace = T)
}

vendorSelector <- function(n) {
  sample(c("Paco", "Juan", "Alex", "Marc"), n, replace = T)
}

data <- data.frame(Vendor = vendorSelector(10), Product = productSelector(10),
                   stringsAsFactors = FALSE)

data

       Vendor Product
1    Paco     Oil
2    Paco  Carbon
3    Juan     Oil
4    Paco     Oil
5    Marc  Carbon
6    Juan     Oil
7    Juan  Carbon
8    Juan    Wood
9    Alex     Oil
10   Paco    Wood