标签: subset

为什么`[`比`子集更好?

当我需要过滤data.frame,即提取满足特定条件的行时,我更喜欢使用该subset函数:

subset(airquality, Month == 8 & Temp > 90)
Run Code Online (Sandbox Code Playgroud)

而不是[功能:

airquality[airquality$Month == 8 & airquality$Temp > 90, ]
Run Code Online (Sandbox Code Playgroud)

我偏好有两个主要原因:

  1. 我发现代码从左到右读得更好.甚至那些对R一无所知的人也可以说出subset上面的陈述是做什么的.

  2. 因为列可以在select表达式中称为变量,所以我可以节省一些键击.在我上面的例子中,我只需输入airquality一次subset,但只输入三次[.

所以我过着幸福快乐,subset随处可见,因为它更短,读起来更好,甚至为我的R编码员提倡它的美丽.但昨天我的世界崩溃了.在阅读subset文档时,我注意到这一节:

警告

这是一种便于交互使用的便利功能.对于编程,最好使用像[的标准子集函数,特别是参数子集的非标准评估可能会产生意想不到的后果.

有人可以帮助澄清作者的意思吗?

首先,他们的意思是" 交互使用 "?我知道什么是交互式会话,而不是在BATCH模式下运行的脚本,但我不知道它应该有什么区别.

那么,请你解释一下" 论证子集的非标准评估 "以及为什么它是危险的,或许可以提供一个例子?

r subset filter r-faq

392
推荐指数
2
解决办法
9万
查看次数

如何在数据框中按名称删除列

我有一个大型数据集,我想阅读特定列或删除所有其他列.

data <- read.dta("file.dta")
Run Code Online (Sandbox Code Playgroud)

我选择了我不感兴趣的列:

var.out <- names(data)[!names(data) %in% c("iden", "name", "x_serv", "m_serv")]
Run Code Online (Sandbox Code Playgroud)

而且我想做的事情如下:

for(i in 1:length(var.out)) {
   paste("data$", var.out[i], sep="") <- NULL
}
Run Code Online (Sandbox Code Playgroud)

删除所有不需要的列.这是最佳解决方案吗?

r subset dataframe

281
推荐指数
8
解决办法
38万
查看次数

如何在Ruby中获取数组的交集,并集和子集?

我想为一个名为Multiset的类创建不同的方法.

我有所有必需的方法,但我不确定如何编写交集,并集和子集方法.

对于交集和联合,我的代码如下所示:

def intersect(var)
  x = Multiset.new
end
Run Code Online (Sandbox Code Playgroud)

这是一个例子:

X = [1, 1, 2, 4]
Y = [1, 2, 2, 2]
Run Code Online (Sandbox Code Playgroud)

然后的交点XY[1, 2].

ruby union intersection subset

161
推荐指数
3
解决办法
10万
查看次数

按逻辑条件过滤data.frame行

我想data.frame根据逻辑条件从a中过滤行.我们假设我有数据框

   expr_value     cell_type
1    5.345618 bj fibroblast
2    5.195871 bj fibroblast
3    5.247274 bj fibroblast
4    5.929771          hesc
5    5.873096          hesc
6    5.665857          hesc
7    6.791656          hips
8    7.133673          hips
9    7.574058          hips
10   7.208041          hips
11   7.402100          hips
12   7.167792          hips
13   7.156971          hips
14   7.197543          hips
15   7.035404          hips
16   7.269474          hips
17   6.715059          hips
18   7.434339          hips
19   6.997586          hips
20   7.619770          hips
21   7.490749          hips
Run Code Online (Sandbox Code Playgroud)

我想要的是获得一个看起来相同但只有一个cell_type数据的新数据框.例如包含单元格类型"hesc"的子集/选择行:

   expr_value     cell_type
1    5.929771          hesc
2    5.873096          hesc …
Run Code Online (Sandbox Code Playgroud)

r subset dataframe

145
推荐指数
6
解决办法
27万
查看次数

检查数组是否是另一个数组的子集

有关如何检查该列表是否是另一个列表的任何想法?

具体来说,我有

List<double> t1 = new List<double> { 1, 3, 5 };
List<double> t2 = new List<double> { 1, 5 };
Run Code Online (Sandbox Code Playgroud)

如何使用LINQ检查t2是否为t1的子集?

c# linq list subset

140
推荐指数
6
解决办法
4万
查看次数

Python:检查一个字典是否是另一个较大字典的子集

我正在尝试编写一个自定义过滤器方法,它接受任意数量的kwargs并返回一个列表,其中包含类似数据库的列表,其中包含那些kwargs.

例如,假设d1 = {'a':'2', 'b':'3'}d2=同样的事情.d1 == d2结果是真的.但是假设d2=同样的事情加上一堆其他的东西.我的方法需要能够判断d2中是否有d1,但Python不能用字典来表示.

语境:

我有一个字类,并且每个对象都有类似的属性word,definition,part_of_speech,等等.我希望能够在这些单词的主列表上调用过滤方法,例如Word.objects.filter(word='jump', part_of_speech='verb-intransitive').我无法弄清楚如何同时管理这些键和值.但是,对于其他人来说,这可能会在此背景下具有更大的功

python dictionary subset filter

91
推荐指数
8
解决办法
4万
查看次数

在数据框的选定列中包含NA(缺失)值的行的子集

我们有一个CSV文件的数据框.数据框DF包含包含观察值的列和VaR2包含测量日期的列().如果未记录日期,则CSV文件包含NA缺失数据的值.

Var1  Var2 
10   2010/01/01
20   NA
30   2010/03/01
Run Code Online (Sandbox Code Playgroud)

我们希望使用subset命令来定义一个新的数据框new_DF,使其只包含具有NA'column(VaR2)值的行.在给出的示例中,只有第2行将包含在新的中DF.

命令

new_DF<-subset(DF,DF$Var2=="NA") 
Run Code Online (Sandbox Code Playgroud)

不起作用,结果数据框没有行条目.

如果在原始CSV文件NA中交换 了值NULL,则相同的命令会产生所需的结果:new_DF<-subset(DF,DF$Var2=="NULL").

如果字符串NA在原始CSV文件中提供了值,那么如何使此方法有效?

csv r subset dataframe na

87
推荐指数
6
解决办法
24万
查看次数

检查列表<t>是否包含任何其他列表

我有一个像这样的参数列表:

public class parameter
{
    public string name {get; set;}
    public string paramtype {get; set;}
    public string source {get; set;}
}

IEnumerable<Parameter> parameters;
Run Code Online (Sandbox Code Playgroud)

我想要检查它的一系列字符串.

string[] myStrings = new string[] { "one", "two"};
Run Code Online (Sandbox Code Playgroud)

我想迭代参数列表并检查source属性是否等于任何myStrings数组.我可以用嵌套的foreach来做到这一点,但我想学习如何以更好的方式做到这一点,因为我一直在玩linq,就像可枚举的扩展方法一样,所以嵌套的foreachs只是感觉不对.有没有更优雅的首选linq/lambda/delegete方法来做到这一点.

谢谢

c# loops list subset c#-4.0

72
推荐指数
4
解决办法
8万
查看次数

如何将矩阵子集化为一列,维护矩阵数据类型,维护行/列名称?

当我将矩阵子集化为单个列时,结果是类数字,而不是矩阵(即myMatrix [,5]到第五列的子集).是否有一种紧凑的方法可以将单个列子集化,维护矩阵格式,并维护行/列名称,而无需执行以下操作:

matrix( myMatrix[ , 5 ] , dimnames = list( rownames( myMatrix ) , colnames( myMatrix )[ 5 ] )
Run Code Online (Sandbox Code Playgroud)

r matrix subset r-faq

71
推荐指数
1
解决办法
3万
查看次数

从列表中选择多个元素

我有一个R列表,大约10,000个元素.假设我只想选择元素5,7和9.我不确定如果没有for循环我会怎么做.

我想做一些类似mylist[[c(5,7,9]]但不起作用的事情.我也试过这个lapply功能,但也无法让它工作.

r list subset

71
推荐指数
1
解决办法
10万
查看次数

标签 统计

subset ×10

r ×6

dataframe ×3

list ×3

c# ×2

filter ×2

r-faq ×2

c#-4.0 ×1

csv ×1

dictionary ×1

intersection ×1

linq ×1

loops ×1

matrix ×1

na ×1

python ×1

ruby ×1

union ×1