我有几个要保存到.csv文件的变量。 这些变量具有不同的值,这会在以下命令中生成错误:
mojeDane <- data.frame('Numer'=waga_linkow, 'Zarażenie nr 1.'= selekcja, Zarażenie nr 2.'=selekcja2)
write.csv2(mojeDane, 'wynik.csv', row.names = F, na = '', fileEncoding = 'Windows-1250')
答案 0 :(得分:0)
看起来你的data.frame定义中有拼写错误。第三列的名称在开头缺少引号。
R中的Data.frames每列只能有相同数量的元素。例如,这有效:
# define vectors of the same length
waga_linkow <- rnorm(10)
selekcja <- 1:10
selekcja2 <- c(rep("wieczór", 5), rep("dzień",5))
# combine vectors into a data frame
mojeDane = data.frame('Numer'= waga_linkow , 'Zarażenie nr 1.'= selekcja, 'Zarażenie nr 2'= selekcja2)
# save the data
write.csv2(mojeDane, 'wynik.csv', row.names = F, na = '', fileEncoding = 'Windows-1250')
如果原始值是矢量或各种长度,则可以将它们保存为列表,然后将其保存为Rdata格式:
# define vectors of the various length
waga_linkow <- rnorm(10)
selekcja <- 1:20
selekcja2 <- c(rep("wieczór", 5), rep("dzień",1))
# save as a list
mojeDane.list = list('Numer'= waga_linkow , 'Zarażenie nr 1.'= selekcja, 'Zarażenie nr 2'= selekcja2)
# Save to a file
save(mojeDane.list, file="wynik.Rdata")
将Rdata文件加载回R使用load()
函数
如果你想在csv.format中保存不同长度的列,你可以将缺少的值添加到较短的向量中,并用na=' '
写出输出:
# Assuming selekcja is the longest vector in the data
df <- data.frame('Zarażenie nr 1.'= selekcja,
'Numer' = waga_linkow[seq(selekcja)],
'Zarażenie nr 2' = selekcja2[seq(selekcja)])
# Assuming you want spaces for missing values
write.csv(df, "output.csv",row.names=F, quote=FALSE, na=" ")