为了序言,我对R和它的能力相对较新,并且已经在这个问题上苦苦挣扎了大约2周。我有一个相当大的数据集,有2列电子邮件和状态。它显示如下:
runfile('C:/Users/Lenovo/Desktop/EE Codes/Knn with prima.py', wdir='C:/Users/Lenovo/Desktop/EE Codes')
[[91 10]
[30 23]]
0.53488372093
0.74025974026
0.6558441558441559
[1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0
0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0
1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1
1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0
0 0 0 0 0 0]
661 1
122 0
113 1
14 1
529 0
103 0
338 1
588 0
395 0
204 0
31 0
546 0
278 0
593 0
737 0
202 0
175 0
55 1
479 1
365 1
417 0
577 0
172 0
352 0
27 0
605 1
239 0
744 0
79 0
496 0
..
413 1
694 1
698 0
386 1
456 0
728 0
71 1
49 0
210 0
409 0
503 0
37 1
687 0
48 0
261 0
653 0
331 1
568 1
196 1
76 0
64 0
671 0
52 1
310 0
416 1
476 0
482 0
230 1
527 0
380 0
Name: 1, Length: 154, dtype: int64
我需要获取已更改状态的电子邮件的计数以及具有相同状态的电子邮件的计数。所以:
Email Status
fake@123 Subscribed
real@123 Subscribed
fake@123 Unsubscribed
real@123 Subscribed
我在R中尝试了各种不同的东西,例如子集,if语句,循环,反连接,合并,似乎没有任何工作。如果有人能对这个问题有所了解,我将非常感激。提前感谢您的帮助,我希望我能清楚地解释我的情况。
答案 0 :(得分:0)
x <- x[order(x[,1]),]
email <- x[1,1]
subscribe <- x[1,2]
same_count <- 0
change_count <- 0
for(i in 2:nrow(x)){
if(email == x[i,1] && subscribe == x[i,2]) { same_count <- same_count + 1}
if(email == x[i,1] && subscribe != x[i,2]) { change_count <- change_count + 1}
email <- x[i,1]
subscribe <- x[i,2]
}