【发布时间】:2019-06-08 10:05:59
【问题描述】:
我正在尝试在 R 上复制一个非常简单的 VBA 代码,以识别重复项。我的目标是确定样本集中有多少组重复项,首先是跨行向下读取,然后跨列读取。 所以我想出了这个样本:
x<-matrix(data=c("Ali","Ali","Abu","Ali","Ahmad","siti","Ali","Abu", "Ahmad", "Ali", "Abu", "Aisyah", "Khalid", "Robin","Ahmad","Ali","JOrdan","siti"), nrow=6)
x<-data.frame(x)
colnames(x)<-c("nama1","nama2","nama3")
所以你会得到这样的东西
nama1 nama2 nama3
1 Ali Ali Khalid
2 Ali Abu Robin
3 Abu Ahmad Ahmad
4 Ali Ali Ali
5 Ahmad Abu JOrdan
6 siti Aisyah siti
所以我想做的基本上是:
c<-0
for (i in x){
if (x[i,1]==x[i+1,1]){
c=c+1
}
print c
}
我想要的最终输出是指定每行中有多少重复项,然后跨列执行...就像
for i=1 to 10
for j=1 to 20
cells(i,j)="XXX"
do this
next j
next i
问题是我不知道如何在 R 中指定单个单元格,例如。在 VBA 中你可以做 cells(i+1,1)=cells(i,1).. 我正在学习在 R 中做非常简单的数据操作。
我想在最后总结所有列的 c 值。所以应该是 4+4+6= 14。
欢迎任何建议!谢谢
【问题讨论】:
-
您能展示一下您的预期输出是什么样的吗?
-
同意 Ronak,您应该明确显示您的预期输出。也许像
apply(x, 1, function(i) sum(duplicated(i)))(用于行)和apply(x, 2, function(i) sum(duplicated(i)))(用于列)之类的东西可能就是您所追求的 -
大家好,抱歉我更新问题的延迟
标签: r for-loop if-statement