我有一个数据帧:
> class(dataset)
[1] "grouped_df" "tbl_df" "tbl" "data.frame"
> dim(dataset)
[1] 64480 39
Run Code Online (Sandbox Code Playgroud)
我想从中抽取50.000个样本
> dataset %>% dplyr::sample_n(50000)
Run Code Online (Sandbox Code Playgroud)
但一直给我错误
Error: Sample size (50000) greater than population size (1). Do you want replace = TRUE?
Run Code Online (Sandbox Code Playgroud)
但是,例如,这有效:
> dim(dataset[1] %>% dplyr::sample_n(50000))
[1] 50000 1
Run Code Online (Sandbox Code Playgroud)
那么为什么我的人口规模(1)- 这是否与分组有关?
我有一个布尔数组,并且想将它转换为一个数组,其中只有last_n_trues True值仍然是True. 一个简单的例子:
>>> boolean_array = [False, False, True, True, True, False, False]
>>> last_n_trues = 2
>>> desired_output = [False, False, False, True, True, False, False]
Run Code Online (Sandbox Code Playgroud)
我的做法:
>>> import numpy as np
>>> idxs_of_trues = np.where(boolean_array)[0]
array([2, 3, 4], dtype=int64)
>>> idxs_of_trues_last_n = idxs_of_trues[-last_n_trues:]
array([3, 4], dtype=int64)
>>> [x in idxs_of_trues_last_n for x in range(0, len(boolean_array))]
[False, False, False, True, True, False, False]
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法呢?特别是列表理解对我来说似乎很复杂......
我想要两个共享一个DepedencyProperty类使用AddOwner(欢迎任何其他方法),例如
class ClassA : DependencyObject
{
public int Number
{
get { return (int)GetValue(NumberProperty); }
set { SetValue(NumberProperty, value); }
}
public static readonly DependencyProperty NumberProperty =
DependencyProperty.Register("Number", typeof(int), typeof(ClassA),
new FrameworkPropertyMetadata(0,
FrameworkPropertyMetadataOptions.Inherits));
}
Run Code Online (Sandbox Code Playgroud)
和
class ClassB : DependencyObject
{
public int Number
{
get { return (int)GetValue(NumberProperty); }
set { SetValue(NumberProperty, value); }
}
public static readonly DependencyProperty NumberProperty =
ClassA.NumberProperty.AddOwner(typeof(ClassB),
new FrameworkPropertyMetadata(0,
FrameworkPropertyMetadataOptions.Inherits));
}
Run Code Online (Sandbox Code Playgroud)
就像这里描述的那样。正如您可能猜到的那样:当然它不起作用。这是完全有道理的,因为不可能创建同一个类的多个实例,而这些实例都具有“自己的”依赖属性。
我如何确保所有类(特别是所有实例)的ClassA, …
我需要从一个data.table或tbl_df它的名字中获取一列的索引,
有没有比以下更简单的方法:
getColIndex <- function(df, colnameTarget = "myColumnName") {
colnames <- names(traindata_subset)
colIndex <- 1
found <- FALSE
for(colname in colnames) {
if (colname == colnameTarget) {
found <- TRUE
break
}
colIndex <- colIndex + 1
}
if (found) {
return (colIndex)
}
else {
return (-1)
}
}
Run Code Online (Sandbox Code Playgroud)
特别是使用哈德利的dplyr?