在 R 中的一个 .txt 文件上输出不同大小的数据帧
Output different sized dataframes on one .txt file in R
我有两个不同大小的数据帧,我想将它们输出到一个 .txt 文件中。
我一直在使用 write.table 函数,但我只能在 .txt 文件中输出一个。
dataframe1=data.frame(x=c(1:10), y=c(1:10), z=c(1:10))
dataframe2=data.frame(a=c(1:5), b=c(1:5))
write.table( C(dataframe1,dataframe2),
file = "dataframes.txt",
append = F,
sep = ",",
row.names = F,
col.names = F,
na="",
quote = F)
我试图让它们显示为彼此堆叠,但它不起作用。有什么建议吗?
您的代码中存在一些问题。
首先,C(dataframe1,dataframe2) 会产生错误,因为您使用了大写字母 C。
其次,c(dataframe1,dataframe2) 输出一个包含 5 个项目的列表。这不是数据框或矩阵。当您保存时,这将被强制转换为矩阵。任何缺少数据的行都将自动填充,这可能是您不想要的。这将导致您的代码输出:
1,1,1,1,1
2,2,2,2,2
3,3,3,3,3
4,4,4,4,4
5,5,5,5,5
6,6,6,1,1
7,7,7,2,2
8,8,8,3,3
9,9,9,4,4
10,10,10,5,5
这里的问题是您试图连接两个具有不同列数的不同数据帧。您可以将它们合并为一个大 table 并保存。但请注意,任何缺失的行数据都可能会自动填充您不想要的(a 和 b 只有 5 行,而 xyz 有 10 行)。
write.table( cbind(dataframe1,dataframe2),
file = "dataframes.txt",
append = F,
sep = ",",
row.names = F,
col.names = T,
na="",
quote = F)
这将输出:
x,y,z,a,b
1,1,1,1,1
2,2,2,2,2
3,3,3,3,3
4,4,4,4,4
5,5,5,5,5
6,6,6,1,1
7,7,7,2,2
8,8,8,3,3
9,9,9,4,4
10,10,10,5,5
或者,如果您真的希望它们彼此重叠,您可以使用单独的调用并打开追加。
write.table( dataframe1,
file = "dataframes.txt",
append = F,
sep = ",",
row.names = F,
col.names = T,
na="",
quote = F)
write( "\n Next Dataframe \n", file = "dataframes.txt", append = T)
write.table( dataframe2,
file = "dataframes.txt",
append = T,
sep = ",",
row.names = F,
col.names = T,
na="",
quote = F)
Which will output:
x,y,z
1,1,1
2,2,2
3,3,3
4,4,4
5,5,5
6,6,6
7,7,7
8,8,8
9,9,9
10,10,10
Next Dataframe
a,b
1,1
2,2
3,3
4,4
5,5
我有两个不同大小的数据帧,我想将它们输出到一个 .txt 文件中。 我一直在使用 write.table 函数,但我只能在 .txt 文件中输出一个。
dataframe1=data.frame(x=c(1:10), y=c(1:10), z=c(1:10))
dataframe2=data.frame(a=c(1:5), b=c(1:5))
write.table( C(dataframe1,dataframe2),
file = "dataframes.txt",
append = F,
sep = ",",
row.names = F,
col.names = F,
na="",
quote = F)
我试图让它们显示为彼此堆叠,但它不起作用。有什么建议吗?
您的代码中存在一些问题。
首先,C(dataframe1,dataframe2) 会产生错误,因为您使用了大写字母 C。
其次,c(dataframe1,dataframe2) 输出一个包含 5 个项目的列表。这不是数据框或矩阵。当您保存时,这将被强制转换为矩阵。任何缺少数据的行都将自动填充,这可能是您不想要的。这将导致您的代码输出:
1,1,1,1,1
2,2,2,2,2
3,3,3,3,3
4,4,4,4,4
5,5,5,5,5
6,6,6,1,1
7,7,7,2,2
8,8,8,3,3
9,9,9,4,4
10,10,10,5,5
这里的问题是您试图连接两个具有不同列数的不同数据帧。您可以将它们合并为一个大 table 并保存。但请注意,任何缺失的行数据都可能会自动填充您不想要的(a 和 b 只有 5 行,而 xyz 有 10 行)。
write.table( cbind(dataframe1,dataframe2),
file = "dataframes.txt",
append = F,
sep = ",",
row.names = F,
col.names = T,
na="",
quote = F)
这将输出:
x,y,z,a,b
1,1,1,1,1
2,2,2,2,2
3,3,3,3,3
4,4,4,4,4
5,5,5,5,5
6,6,6,1,1
7,7,7,2,2
8,8,8,3,3
9,9,9,4,4
10,10,10,5,5
或者,如果您真的希望它们彼此重叠,您可以使用单独的调用并打开追加。
write.table( dataframe1,
file = "dataframes.txt",
append = F,
sep = ",",
row.names = F,
col.names = T,
na="",
quote = F)
write( "\n Next Dataframe \n", file = "dataframes.txt", append = T)
write.table( dataframe2,
file = "dataframes.txt",
append = T,
sep = ",",
row.names = F,
col.names = T,
na="",
quote = F)
Which will output:
x,y,z
1,1,1
2,2,2
3,3,3
4,4,4
5,5,5
6,6,6
7,7,7
8,8,8
9,9,9
10,10,10
Next Dataframe
a,b
1,1
2,2
3,3
4,4
5,5