小编son*_*089的帖子

在R中选择具有特定条件的行

我目前有一个类似于多个ID的数据(范围直到1600左右)

id  year    name    status
1   1980    James   3
1   1981    James   3
1   1982    James   3
1   1983    James   4
1   1984    James   4
1   1985    James   1
1   1986    James   1
1   1987    James   1
2   1982    John    2
2   1983    John    2
2   1984    John    1
2   1985    John    1
Run Code Online (Sandbox Code Playgroud)

我希望对这些数据进行子集化,以便它只有status = 1的信息和之前的状态.我也想消除多个1,只保存前1个.总之,我想要:

id  year    name    status
1   1984    James   4
1   1985    James   1
2   1983    John    2
2   1984    John    1
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我正在弄清楚在哪一年有多少人从某个状态变为状态1.我只知道子集命令,我不认为我可以从中做这些数据subset(data, subset=(status==1)).我怎么能在那之前保存信息 …

row r

5
推荐指数
1
解决办法
320
查看次数

将数据子集化到R中的第一次出现

我正在尝试对数据进行子集化,因此它只保留第一次出现的变量.我正在查看跟踪工人职业生涯的面板数据,我正在尝试对数据进行分组,以便只有在每个人都成为Boss之前才会显示.

id  year    name    job    job2
1   1990    Bon     Manager 0
1   1991    Bon     Manager 0
1   1992    Bon     Manager 0
1   1993    Bon     Boss    1
1   1994    Bon     Manager 0
2   1990    Jane    Manager 0
2   1991    Jane    Boss    1
2   1992    Jane    Manager 0
2   1993    Jane    Boss    1
Run Code Online (Sandbox Code Playgroud)

所以我希望数据看起来像:

id  year    name    job   job2
1   1990    Bon     Manager 0
1   1991    Bon     Manager 0
1   1992    Bon     Manager 0
1   1993    Bon     Boss    1
2   1990    Jane …
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
2
解决办法
1572
查看次数

选择变量值等于某个向量的行

我有一个df超过1000人的纵向数据,如下所示:

id  year    name    status  
1   1984    James   4   
1   1985    James   1   
2   1983    John    2   
2   1984    John    1   
3   1980    Amy     2   
3   1981    Amy     2   
4   1930    Jane    4   
4   1931    Jane    5   
Run Code Online (Sandbox Code Playgroud)

我正在尝试确定数据的子集id.例如,我有一个ddid我想要分组的s 组成的向量:

dd<-c(1,3)
Run Code Online (Sandbox Code Playgroud)

我尝试过以下但是没有用,例如:

subset<-subset(df, subset(df$id==dd))
Run Code Online (Sandbox Code Playgroud)

要么

subset<-subset(df, subset(unique(df$id))==dd))
Run Code Online (Sandbox Code Playgroud)

要么

subset<-df[which(unique(df$id)==dd),]
Run Code Online (Sandbox Code Playgroud)

或者我试过一个for循环

for (i in 1:2){
  subset<-subset(df, subset=(unique(df$id)==dd[i]))
}
Run Code Online (Sandbox Code Playgroud)

是否有办法只选择ids与矢量中的数字相匹配的行dd

row r subset

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

如何复制列表一定次数

我希望复制一个列表超过1000次,然后附加到一个更大的列表.

例如:

a = ['1','2','3','4]
Run Code Online (Sandbox Code Playgroud)

复制此列表然后将其嵌套一百次:

output = [['1','2','3','4],['1','2','3','4],['1','2','3','4],['1','2','3','4],['1','2','3','4].....]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只遇到过*2,这不是我想要的.

python list

3
推荐指数
2
解决办法
2911
查看次数

迭代子列表以创建字典

我想迭代列表中的子列表以创建一个字典,其中子列表的元素是键,广告值都是0.

例:

keys = [['desk','lamp','printer'],['mouse','chair','desk','pencil']]
Run Code Online (Sandbox Code Playgroud)

我想要输出:

output = [{'desk':0,'lamp':0,'printer':0},{'mouse':0,'chair':0,'desk':0,'pencil':0}]
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但没有奏效:

d = {}
output= []

for i in range(len(keys)):
    for w in keys[i]:
        output.append(d[w] = 0)
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个时,我收到一条消息关键字不能成为表达式.

由于我在键的子列表中有不同的元素,我该怎么做?

python dictionary

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

如何检查多个子字符串是否一起出现在字符串中

strings = ['I have a bird', 'I have a bag and a bird', 'I have a bag']
words = ['bird','bag']
Run Code Online (Sandbox Code Playgroud)

我想在列表中找到包含bird和bag的字符串strings,无论顺序如何.所以只有第二个元素的结果strings应该是真的,其余的应该是假的.

我想要的输出:

False
True
False
Run Code Online (Sandbox Code Playgroud)

words不一定需要存储在列表中,我知道regex可以做类似的事情,但我更愿意使用其他方式,regex因为我的单词是普通话,需要复杂使用正则表达式而不是英语.

python list

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

在 R 中绘制图外的图例

我试图将图例放在情节之外,xpd=TRUE但图例一直在情节内绘制。我怎样才能解决这个问题?

x = c(0,0,1,1,1)
y = c(0.4991,1.1423,1.2258,1.158,0.5148)
dat<-cbind(x,y)
point_shape = c(10,15,10,15,1)
dat<-data.frame(x,y,point_shape)

myTicks<-c(0,1)
plot(dat[,1],dat[,2], yaxt="n", xaxt="n", xlab="", ylab="",pch = dat$point_shape)
abline(0.4991,0.7267)
abline(1.1423,0.0157)
abline(0.4991,0.0157,lty=2)
axis(side = 1, at = myTicks)
axis(side = 2, at = myTicks)


legend("bottomleft", legend = c("apple", "orange", "tree"),
       bty = "n", xpd=FALSE, mar(c(7,7,7,7)), cex = 1, pch = c(10, 15, 1))
Run Code Online (Sandbox Code Playgroud)

plot r legend

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

保留 row.names 的同时对矩阵进行子集化

我正在尝试对矩阵进行子集化,以便仅获得第一个变量大于第二个变量的矩阵。我有一个矩阵out,它是一个3000x2矩阵。

我试过

out<-out[out[,1] > out[,2]]
Run Code Online (Sandbox Code Playgroud)

但这完全消除了 row.names,并且我得到了一串 1 到 3000 之间的整数。有没有办法保留row.names

performance r matrix

2
推荐指数
1
解决办法
4963
查看次数

当“add = TRUE”时,curve() 不会向我的绘图添加曲线

我有一个非常简单的问题,我似乎无法弄清楚。我想在一张图中绘制两个方程。我试过了,add = TRUE但这似乎不起作用。

curve(0.044*x+1.638)
curve(0.3438*x+0.5155, add=TRUE)
Run Code Online (Sandbox Code Playgroud)

plot r

2
推荐指数
1
解决办法
3808
查看次数

如何将 re.split 用于逗号和句点?

我有多个字符串,其中单词用逗号或句点分割:

string = ['apple,pear,grapes,carrot.cabbage,veggies.fruit,yard']
Run Code Online (Sandbox Code Playgroud)

我想根据逗号和句点拆分它:

string = ['apple','pear','grapes','carrot','cabbage','veggies','fruit','yard']
Run Code Online (Sandbox Code Playgroud)

我只知道如何为 re.split 使用一个条件:

re.split(',',string)
Run Code Online (Sandbox Code Playgroud)

这不会拆分中间有句点的单词。如何拆分整个字符串,以便在中间有逗号或句点时拆分单词?

python regex split

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

在python中通过if条件追加列表

这可能是一个非常基本的问题,但我意识到我不明白一些事情。

在 for 循环中追加新内容时,如何提出条件并仍然追加该项目?

例如:

alist = [0,1,2,3,4,5]
new = []
for n in alist:
    if n == 5:
        continue
    else:
        new.append(n+1)

print(new) 
Run Code Online (Sandbox Code Playgroud)

让我明白

[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

如何得到

[1, 2, 3, 4, 5, 5] # 4 is incremented, 5 is added 'as is'
Run Code Online (Sandbox Code Playgroud)

本质上,我想告诉 python 不要经历n+1when n==5

这是唯一的解决方案吗?将 n==5 单独附加到列表中,然后将新的和单独的列表相加?

python for-loop list append python-3.x

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

标签 统计

r ×6

python ×5

list ×3

plot ×2

row ×2

append ×1

dictionary ×1

for-loop ×1

legend ×1

matrix ×1

performance ×1

python-3.x ×1

regex ×1

split ×1

subset ×1