我从数据帧中抽取了一个随机样本。但是我不知道如何获取剩余的数据帧。
df <- data.frame(x=rep(1:3,each=2),y=6:1,z=letters[1:6])
#select 3 random rows
df[sample(nrow(df),3)]
Run Code Online (Sandbox Code Playgroud)
我想要的是获得其余3行的剩余数据帧。
我有一个项目,我正在对模拟数据进行采样并尝试使用 matplotlib 进行分析。目前,我的模拟数据源是连接到微控制器的电位计,但这与问题无关。这是我的代码
arrayFront = RunningMean(array(dataFront), 15)
arrayRear = RunningMean(array(dataRear), 15)
x = linspace(0, len(arrayFront), len(arrayFront)) # Generate x axis
y = linspace(0, len(arrayRear), len(arrayRear)) # Generate x axis
min_vals_front = scipy.signal.argrelmin(arrayFront, order=2)[0] # Min
min_vals_rear = scipy.signal.argrelmin(arrayRear, order=2)[0] # Min
max_vals_front = scipy.signal.argrelmax(arrayFront, order=2)[0] # Max
max_vals_rear = scipy.signal.argrelmax(arrayRear, order=2)[0] # Max
maxvalfront = max(arrayFront[max_vals_front])
maxvalrear = max(arrayRear[max_vals_rear])
minvalfront = min(arrayFront[min_vals_front])
minvalrear = min(arrayRear[min_vals_rear])
plot(x, arrayFront, label="Front Pressures")
plot(y, arrayRear, label="Rear Pressures")
plot(x[min_vals_front], arrayFront[min_vals_front], "x")
plot(x[max_vals_front], arrayFront[max_vals_front], "o")
plot(y[min_vals_rear], …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何从帧 , 开始,对x[n]每帧视频流进行采样,以便最终得到长度为 的新视频。Nn_ii < NNlen(x) / N
在公式中这很简单:y_i[n] = x[n_i + n * N]。
贪婪的解决方案只是将帧转储到文件夹中,然后从适当索引的帧中创建新视频。我希望有一些更优雅的解决方案,ffmpeg因为我必须处理数百个视频。
最后,我设法编写了最终的实现,为了完整性,我在这里报告它。
它确实将最小尺寸缩放到256,但处理的尺寸不会超过max_frames;每帧执行采样k,将第一个k - 1样本发送到一个文件夹,将第k一个样本发送到另一个文件夹。它还将输出帧速率设置为输入平均帧速率,否则某些视频将以 120 Hz 播放...
k=5
kk=$(awk "BEGIN{print 1/$k}")
ffmpeg \
-i $src_video_path \
-an \
-loglevel error \
-filter_complex \
"setpts=$kk*PTS, \
scale=w=2*trunc(128*max(1\, iw/ih)):h=2*trunc(128*max(1\, ih/iw))[m]; \
[m]select=n=$k:e=(mod(n\,$k)+1)*lt(n\,$max_frames) \
$(for ((i=1; i<=$k; i++)); do
echo -n "[a$i]"
done)" …Run Code Online (Sandbox Code Playgroud) 如何将第一个元素和第n列的每个元素复制到另一个数组中?
例如,假设你有以下数组:
array{[1,2,3,4,5],
[1,2,3,4,5],
[1,2,3,4,5]}
Run Code Online (Sandbox Code Playgroud)
我想选择第一个元素和每个第二个元素,所以我会:
array{[1,3,5],
[1,3,5],
[1,3,5]}
Run Code Online (Sandbox Code Playgroud) 我一直在使用sklearn.ensemble.IsolationForest隔离林的 scikit learn 实现来检测数据集中的异常情况,数据范围从数百行到数百万行数据。它似乎运行良好,我已将其覆盖max_samples为一个非常大的整数来处理一些较大的数据集(本质上不使用子采样)。我注意到原始论文指出,较大的样本量会产生淹没和掩盖的风险。
如果隔离森林看起来工作正常,是否可以在大样本量上使用它?我尝试使用较小的训练max_samples,但测试产生了太多异常情况。我的数据确实开始增长,我想知道对于如此大的样本量,不同的异常检测算法是否会更好。
是否可以从.Rdata对象或存储在磁盘上的任何其他大型数据对象中绘制引导样本?我目前从非常大的数据中采样的方法是构建一个本地MySQL数据库,然后使用SQL将随机样本绘制到R中.不幸的是,MySQL中的采样和排序根本没有效率.我想知道是否有人为此用例设计了更好的解决方案.
要了解我当前的解决方案,请参阅MySQL中的采样问题: 来自Sql数据库的简单随机样本
我有一个问题,我有k项,比方说{0,1},我必须列举所有可能的N抽奖,比方说N=3.也就是说,我试图从矢量中找到给定大小的所有可能样本,并进行替换.
我可以通过以下循环方法到达那里:
for (i1 in c(0,1)){
for (i2 in c(0,1)){
for (i3 in c(0,1)){
print(paste(i1,i2i3,collapse="_"))
}}}
Run Code Online (Sandbox Code Playgroud)
然而,这感觉像一个kludge.使用基础R有更好的方法吗?
我想从正态分布中抽取样本,使其平均值为例如.1.
我怎么能在R中这样做?(我看到很多带有离散分布的例子但不是连续的.)
假设我有一个数据框,其中包含 n 个类别的分类变量和一个数值变量。我需要随机化每个类别内的数值变量。例如,考虑下表:
Col_1 Col_2
A 2
A 5
A 4
A 8
B 1
B 4
B 9
B 7
Run Code Online (Sandbox Code Playgroud)
当我尝试sample()R 中的函数时,它给出了考虑到这两个类别的结果。有什么函数可以得到这种输出吗?(无论有没有更换,都没关系)
Col_1 Col_2
A 8
A 4
A 2
A 5
B 9
B 7
B 4
B 1
Run Code Online (Sandbox Code Playgroud) 如何从Name以下数据框中的每组(列)中随机选择一行:
Distance Name Time Order
1 16 John 5 0
4 31 John 9 1
0 23 Kate 3 0
3 15 Kate 7 1
2 32 Peter 2 0
5 26 Peter 4 1
Run Code Online (Sandbox Code Playgroud)
预期结果:
Distance Name Time Order
4 31 John 9 1
0 23 Kate 3 0
2 32 Peter 2 0
Run Code Online (Sandbox Code Playgroud) 假设我有一个数据集(90,000 x 17),即(n x p)这里n是number of observations和p是number of variables,我想借此进行随机抽样,20%从我的整个数据集的行如何能够在这个R上做了什么?
抽取随机样本后,我将相应地进行聚类分析。
我曾尝试使用其他问题来回答我的问题,但它们并没有定论,因为它不能满足我的需求。