标签: subset

在子集函数和逻辑运算符中使用多个条件

如果我想在R中选择数据子集,我可以使用子集函数.我想基于与少数几个标准匹配的数据进行分析,例如,某个变量是1,2或3.我尝试过

myNewDataFrame <- subset(bigfive, subset = (bigfive$bf11==(1||2||3)))
Run Code Online (Sandbox Code Playgroud)

它总是只选择与第一个标准匹配的值,这里1.我的假设是它将从1开始,如果它的评估为"false",它将继续到2而不是3,如果没有匹配==之后的语句为"false",如果其中一个匹配,则为"true".

我得到了正确的结果

 newDataFrame <- subset(bigfive, subset = (bigfive$bf11==c(1,2,3)))
Run Code Online (Sandbox Code Playgroud)

但我希望能够通过逻辑运算符选择数据,所以:为什么第一种方法不起作用?

r subset operator-precedence logical-operators

18
推荐指数
2
解决办法
6万
查看次数

使用python中的索引创建包含list子集的新列表

一个列表:

a = ['a', 'b', 'c', 3, 4, 'd', 6, 7, 8]
Run Code Online (Sandbox Code Playgroud)

我想要一个使用子集的列表a[0:2],a[4], a[6:],

那是我想要一个清单 ['a', 'b', 4, 6, 7, 8]

python indexing list subset

18
推荐指数
2
解决办法
8万
查看次数

使用`ftable`属性提取数据

我有时ftable纯粹使用该函数来表示层次类别.但是,有时候,当表很大时,我想在使用它之前进一步对表进行子集化.

假设我们从以下开始:

mytable <- ftable(Titanic, row.vars = 1:3)
mytable
##                    Survived  No Yes
## Class Sex    Age                   
## 1st   Male   Child            0   5
##              Adult          118  57
##       Female Child            0   1
##              Adult            4 140
## 2nd   Male   Child            0  11
##              Adult          154  14
##       Female Child            0  13
##              Adult           13  80
## 3rd   Male   Child           35  13
##              Adult          387  75
##       Female Child           17  14
##              Adult           89  76
## Crew  Male   Child …
Run Code Online (Sandbox Code Playgroud)

r subset

18
推荐指数
1
解决办法
701
查看次数

在Python中子集数据

对于我正在编写的一些Python代码,我想在R中使用等效的子命令.

这是我的数据:

col1    col2    col3    col4    col5
100002  2006    1.1 0.01    6352
100002  2006    1.2 0.84    304518
100002  2006    2   1.52    148219
100002  2007    1.1 0.01    6292
10002   2006    1.1 0.01    5968
10002   2006    1.2 0.25    104318
10002   2007    1.1 0.01    6800
10002   2007    4   2.03    25446
10002   2008    1.1 0.01    6408
Run Code Online (Sandbox Code Playgroud)

我想子集基于内容的数据col1col2.(col1中的唯一值为100002和10002,col2中的唯一值为2006,2007和2008.)

这可以使用subset命令在R中完成,Python中有类似的东西吗?

python arrays numpy r subset

17
推荐指数
2
解决办法
4万
查看次数

Ruby:包含在Array中的数组,任何顺序

假设我有以下Ruby代码:

array_1 = ['a', 'b']
array_2 = ['a', 'b', 'c']

some_function(array_1, array_2) # => True
some_function(array_2, array_1) # => False
some_function(['a', 'b'], ['a', 'd']) # => False
some_function(['x', 'y'], array_2) # => False
Run Code Online (Sandbox Code Playgroud)

some_function当参数2包含参数1中的所有元素时,我非常希望返回True .

ruby arrays function subset

17
推荐指数
1
解决办法
4342
查看次数

data.table中的子集

我试图在R(而不是data.frame)中对data.table(来自包data.table)进行子集化.我有一个4位数的年份作为关键.我想通过一系列的几年来分组.例如,我想要提取1999年,2000年,2001年的所有记录.

我试过传递DT[J(year)]以下二进制搜索语法:

1999,2000,2001
c(1999,2000,2001)
1999, 2000, 2001
Run Code Online (Sandbox Code Playgroud)

但这些似乎都不起作用.任何人都知道如何做一个子集,你想要选择的年份不只是1年,而是多年?

r subset data.table

17
推荐指数
3
解决办法
5万
查看次数

在R中选择ID上的多行条件

我试图根据他们的ID选择行.例如,在一个被叫的数据帧中test,ID 201有6行数据,ID 202也有6行数据,203,204 .....等.

现在我只想从数据集中提取201和202,所以它应该总共有12行.然而

out <- test[test$ID==c(201,202), ]
out <- subset(test, ID==c(201,202))
Run Code Online (Sandbox Code Playgroud)

只返回三个201和三个202,分别是行1,行3,行5 5 10 12.

任何人都可以提供一些建议,告诉我如何在R中做到这一点?

r subset

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

根据join更新data.table的子集

我有两个数据表,DT1和DT2:

set.seed(1)
DT1<-data.table(id1=rep(1:3,2),id2=sample(letters,6), v1=rnorm(6), key="id2")
DT1
##    id1 id2         v1
## 1:   2   e  0.7383247
## 2:   1   g  1.5952808
## 3:   2   j  0.3295078
## 4:   3   n -0.8204684
## 5:   3   s  0.5757814
## 6:   1   u  0.4874291

DT2<-data.table(id2=c("n","u"), v1=0, key="id2")
DT2
##    id2 v1
## 1:   n  0
## 2:   u  0
Run Code Online (Sandbox Code Playgroud)

我想基于与DT2的连接更新DT1,但仅针对DT1的子集.例如,对于DT1[id1==3],我希望第4行中的v1的值更新,如下面的结果:

DT1
##    id1 id2         v1
## 1:   2   e  0.7383247
## 2:   1   g  1.5952808
## 3:   2   j  0.3295078
## 4: …
Run Code Online (Sandbox Code Playgroud)

join r subset assignment-operator data.table

17
推荐指数
2
解决办法
6217
查看次数

基于列名称的部分匹配的子集数据

我需要将df子集以包含某些字符串.其中一些是完整的列名称,以下工作正常:

testData[,c("FullColName1","FullColName2","FullColName3")]
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要扩展它以包含包含特定字符串的列名,这些字符串可能与其他一些列名称部分匹配.这些字符串包括字母和符号:

"PartString1()","PartString2()"
Run Code Online (Sandbox Code Playgroud)

我尝试在这些周围加上通配符.(我在下面用前缀"star"表示,因为"*"符号没有正确呈现.)

testData[ ,c("FullColName1","FullColName2","FullColName3",
             "starPartString1()star","starPartString2()star")]
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误消息:选择了未定义的列.我无法弄清楚是否需要grep来完成这项工作.

r subset

17
推荐指数
2
解决办法
4万
查看次数

数据集上的"子集"和"["给出的结果略有不同,为什么?

有人可以解释一下为什么我在identical()下面的两行代码(调用)中得到不同的结果吗?这两个对象似乎是相同的对象,但是当我在apply函数中使用它们时,我遇到了一些麻烦:

df <- data.frame(a = 1:5, b = 6:2, c = rep(7,5))
df_ab <- df[,c(1,2)]
df_AB <- subset(df, select = c(1,2))
identical(df_ab,df_AB)
[1] TRUE

apply(df_ab,2,function(x) identical(1:5,x))
    a     b 
TRUE FALSE

apply(df_AB,2,function(x) identical(1:5,x))
    a     b 
FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

r matrix subset dataframe rowname

17
推荐指数
3
解决办法
743
查看次数