【发布时间】:2020-04-14 17:54:47
【问题描述】:
我想创建一个名为Activity 的相当大且可重复的数据集,以便在 StackOverFlow 上提出问题。我的数据框将包含变量:
-
DateTime:日期和时间以毫秒为单位,数据速率为每秒 11 个值,即每秒 11 行。 -
ID:指个人。我想创建一个包含 3 个人(A、B和C)的数据集。 -
x:随机数据,范围从-1到+1。 -
y:随机数据,范围从-1到+1。 -
z:从-1到+1的随机数据。
我最初使用这个代码:
set.seed(100)
fmt <- "%Y-%m-%d %H:%M:%OS"
DateTime = seq(from=as.POSIXct("2017-08-05 14:03:55.300", format=fmt, tz="UTC"), by=1/11, length.out=67)
ID = rep("A", each=67)
x= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
y= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
z= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
Activity1<- data.frame(DateTime,ID, x, y, z)
DateTime = seq(from=as.POSIXct("2017-08-05 16:18:12.100", format=fmt, tz="UTC"),by=1/11, length.out=67)
ID = rep("B", each=67)
x= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
y= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
z= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
Activity2<- data.frame(DateTime,ID, x, y, z)
DateTime = seq(from=as.POSIXct("2017-08-05 20:34:31.540", format=fmt, tz="UTC"),by=1/11, length.out=67)
ID = rep("C", each=67)
x= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
y= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
z= sample(seq(from = -1, to = 1, by = 0.01), size = 67, replace = TRUE)
Activity3<- data.frame(DateTime,ID, x, y, z)
Activity<- rbind(Activity1,Activity2,Activity3)
head(Activity)
DateTime ID x y z
1 2017-08-05 14:03:55.29999 A 0.01 0.82 -0.56
2 2017-08-05 14:03:55.39090 A 0.11 0.74 0.07
3 2017-08-05 14:03:55.48182 A 0.50 0.95 -0.64
4 2017-08-05 14:03:55.57273 A 0.97 -0.89 0.95
5 2017-08-05 14:03:55.66364 A -0.97 0.78 -0.01
6 2017-08-05 14:03:55.75454 A -0.46 0.20 1.00
如何使用更少的代码创建相同的数据框?我需要在 StackOverFlow 的另一篇文章中创建一个可重现的数据框,其他用户告诉我应该使用更少的代码来创建我的示例。
【问题讨论】:
-
他们使用不同的 R 版本吗?据报道,R 3.6 中对
sample的更改使其无法在版本之间重现 community.rstudio.com/t/getting-different-results-with-set-seed/… -
有可能!!你知道如何简化代码来创建我想要的数据框吗??
-
我使用的是
1.2.5033版本。你能检查一下你的,告诉我你是否得到了和我一样的数据框? -
"我使用的版本是
1.2.5033";这很可能是 RStudio 的版本,而不是 R;检查sessionInfo()的输出你正在使用哪个版本的R -
可以使用
RNGversion()函数来获取新版本的 R 以使用旧版本的随机数生成器。例如,RNGversion("3.5.1")告诉 R 使用 3.5.1 版本的随机数生成器。
标签: r