Почему это невозможно:
Поскольку String и Integer не находятся в одной иерархии объектов.
Object
/ \
/ \
String Integer
Кастинг, который вы пытаетесь, работает только в том случае, если он в той же иерархии, например
Object
/
/
A
/
/
B
В этом случае (A) objB
или (Object) objB
или (Object) objA
будут работать.
Следовательно, как уже упоминалось ранее, конвертировать целое число для использования строки:
String.valueOf(integer)
или Integer.toString(integer)
для примитива,
или
Integer.toString()
для объекта.
Не нужно использовать цикл. Вы можете использовать подход data.table
, который будет более эффективным и быстрым.
library(data.table)
# create a column with row positions
setDT(dt)[, rowpos := .I]
# save each line of your dataset into a separate .csv file
dt[, write.csv(.SD, paste0("output_", rowpos,".csv")),
by = rowpos, .SDcols=names(dt) ]
Делать вещи намного быстрее
# Now in case you're working with a large dataset and you want
# to make things much faster, you can use `fwrite {data.table}`*
dt[, fwrite(.SD, paste0("output_", rowpos ,".csv")),
by = rowpos, .SDcols=names(dt) ]
Использование Loop
# in case you still want to use a loop, this will do the work for you:
for (i in 1:nrow(dt)){
write.csv(dt[i,], file = paste0("loop_", i, ".csv"))
}
Дополнительно: сохранение подмножеств dataframe
по группам вместо строк
# This line of code will save a separate `.csv` file for every ID
# and name the file according to the ID
setDT(dt)[, fwrite(.SD, paste0("output_", ID,".csv")),
by = ID, .SDcols=names(dt) ]
* ps. обратите внимание, что fwrite
все еще находится в версии разработки data.table 1.9.7
. Go здесь для инструкций по установке.
[.data.frame
(vazao_total,, write.csv (copy (.SD) [,:=
mun,: unused argument (by = mun)». Здесь мой идентификатор или V1 будет mun.Может быть, я ничего не вижу ... Я буду продолжать пытаться и сообщить вам, найду ли я, почему это происходит. Кроме того, я попробовал fwrite (после установки {data.table } через github), но он также не работает. – rebeca 6 June 2016 в 15:17library(data.table)
иsetDT(yourdata)
– rafa.pereira 6 June 2016 в 17:06