使用不同的行数保存数据

时间:2018-05-05 14:27:27

标签: r csv

我有几个要保存到.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')

1 个答案:

答案 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=" ")

enter image description here