我有一个带有列
的表test.csv
X
1
1
1
2
2
5
5
5
5
我想将列X
中的每个元素与1进行比较(在这种情况下,我有3个匹配项)
我想在新文件output.txt中计算数字和打印输出,如下所示
[c1]
1 2 3
接下来每个X
列元素包含2个(此处为2个匹配项)
想要将结果附加到output.txt
[c1]
1 2 3
[c2]
4 5
接下来,X
列中的每个元素都有5个(有4个匹配)
所以最终的output.txt是
[c1]
1 2 3
[c2]
4 5
[c3]
6 7 8 9
我当前的表包含一列中的750个元素。我想在上面的例子中创建一个输出。我可以使用for循环还是多个条件循环?
答案 0 :(得分:0)
我花了一些时间阅读,你是在每个项目的位置之后
x <- c(1,1,1,2,2,5,5,5,5)
for (n in unique(x)) {
print(paste(as.character(n), " was found at:"))
print(which(x %in% n, arr.ind = TRUE))
}
将.csv文件写出来存储可能是个更好的主意。
答案 1 :(得分:0)
说实话,我发现这个问题有点令人困惑,因为你缺少专栏Y
。但是,如果这是你想要的单行,那么你可以通过以下方式获得出现次数:
aggregate(data.frame(count = data$X), list(value = data$X), length)
和for循环
uvals <- unique(data$X)
result <- matrix(data = NA, nrow = length(uvals), ncol = 2)
colnames(result) <- c("val", "count")
for(i in 1:length(uvals)) {
result[i, 1] <- uvals[i]
result[i, 2] <- sum(data$X == uvals[i])
}
我还建议先进行计算,然后写入文件。