Накопительный счет вместо последнего файла - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь подсчитать все файлы кумулятивно, но по какой-то причине он вместо этого подсчитывает последний файл и использует это число для остальной части анализа. Как я могу изменить этот код, чтобы вместо этого включить количество и уникальное количество всех файлов (есть 51 файл).

#Move all files to one list
file_list <- list.files(pattern="Dataset 2.*txt")

Read files
for (i in 1:length(file_list)){
file <- read.table(file_list[i], header=TRUE, sep=",")
out.file <- rbind(file)
}

Count total number phone call records
count_PHONECALLRECORDS <- length(out.file$CALLER_ID)

#Count number unique caller id's
count_CALLERID <- length(unique(out.file$CALLER_ID))

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вы должны переместить код счета в цикл и инициализировать переменные счета перед циклом:

setwd("~/Desktop/GEOG Research/Jordan/compression")
library(plyr)
library(rlang)
library(dplyr)

# Move all files to one list
file_list <- list.files(pattern="Dataset 2.*txt")

# Read files
count_PHONECALLRECORDS <- 0
count_CALLERID <- 0
for (i in 1:length(file_list)){
   file <- read.table(file_list[i], header=TRUE, sep=",")
   out.file <- rbind(file)

   # Count total number phone call records
   count_PHONECALLRECORDS <- count_PHONECALLRECORDS + length(out.file$CALLER_ID)

   # Count number unique caller id's
   count_CALLERID <- count_CALLERID + length(unique(out.file$CALLER_ID))
}

# Construct contingency matrix
tb_1 <- with(out.file, table(CALLEE_PREFIX, CALLER = substr(CALLER_ID, 0, 1)))
colnames(tb_1) <- c("Refugee Caller", "Non-Refugee Caller")
rownames(tb_1) <- c("Refugee Callee", "Non-Refugee Callee", "Unknown Callee")
tb_1 
0 голосов
/ 06 ноября 2018

Вот нужная вам коррекция -

# Read files
out.file <- NULL
for (i in 1:length(file_list)){
  file <- read.table(file_list[i], header=TRUE, sep=",")
  out.file <- rbind(out.file, file)
}

Обратите внимание, что этот способ увеличения данных, то есть привязка к себе, неэффективен, но, предположив, что вы новичок, я бы сказал, что не беспокойтесь об этом, пока вам не придется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...