如果在第n行发生某些事情,则将ID从第n行更改为最后一行

时间:2017-08-05 16:24:36

标签: stata

我的数据存在一些问题。该调查是在住房单位进行的。因此,具有相同人员ID的两行实际上可能不会指示同一个人。

我想为实际不同的人分配不同的ID。

假设我有这些数据。

id  yearmonth  age 
1   200001      12
1   200002      12
1   200003      14
1   200004      14
1   200005      14
第三排肯定是与众不同的人。它的年龄增加了2.

所以我想改变ID,如

id  yearmonth  age 
1   200001      12
1   200002      12
10   200003      14
10   200004      14
10   200005      14

我该怎么做?我想我可以通过写

来改变第3行的ID
bysort id (yearmonth): replace id=id*10 if age[_n-1]>age+1 | age[_n-1]+1<age

(where I multiply by 10 because all IDs have the same number of numbers, so that multiplying by 10 won't give any duplicate)

但是如何更改所有后续行?

1 个答案:

答案 0 :(得分:1)

以你所拥有的为基础,这样的事情可能会做你想要的。

sudo -H pip3 install py3exiv2

请注意,这将处理一个原始ID检测到两个或更多更改的情况。无论如何,最多可以进行10次更改。

import pyexiv2
metadata = pyexiv2.ImageMetadata("file_name.jpg")
metadata.read()
key = "Xmp.xmp.CustomTagKey"
value = "CustomTagValue"
metadata[key] = pyexiv2.XmpTag(key, value)
metadata.write()