Я хочу просто написать простую функцию-обертку для dcast (пакет reshape2), чтобы иметь возможность читать в файле, изменять форму и записывать в другой файл. Морщина заключается в том, что я обычно не знаю, имена полей раньше времени, я просто знаю, что мне нужны первые 2 столбца, и что есть 3-й столбец с именем «count». Функция I хочу что-то вроде этого.reshape2: Передача args в dcast
function reshapeAndWrite(path, target)
{
require(reshape2)
data = read.csv(path)
fields = colnames(data)
data_reshape = dcast(data, fields[1] ~ fields[2], value.var = count)
write.csv(data_reshape, target)
}
Однако dcast интерпретирует поля [1] и поля [2] в виде строк (т.е. вызова dcast (данные, "var1" ~ "var2") вместо dcast (данные, var1 ~ var2). Как можно Я передаю имена столбцов в.
Я пробовал: as.name()/as.symbol() и различные комбо eval(), parse(), deparse() и substitute().
ответ на этот вопрос, вероятно, может быть обобщена на другие пакеты во вселенной Hadley тоже.
заранее спасибо за помощь!
Это сделало это - спасибо! –