将列表存储到文件中(R)

时间:2014-04-23 15:25:12

标签: r list

我有以下数据框:

    Group.1         V2
1   27562761    GO:0003676
2   27562765    c("GO:0004345", "GO:0050661", "GO:0006006", "GO:0055114")
3   27562775    GO:0016020
4   27562776    c("GO:0005525", "GO:0007264", "GO:0005622")

其中第二列是列表。我尝试使用write.table将数据帧写入文本文件,但它不起作用。我想要的输出是以下一个(file.txt):

27562761    GO:0003676
27562765    GO:0004345, GO:0050661, GO:0006006, GO:0055114
27562775    GO:0016020
27562776    GO:0005525, GO:0007264, GO:0005622

我怎么能得到它?

1 个答案:

答案 0 :(得分:1)

您可以查看sink,或者在将“V2”展平为字符串后可以使用write.csv

请尝试以下示例:

## recreating some data that is similar to your example
df <- data.frame(a = c(1, 1, 2, 2, 3), b = letters[1:5])
x <- aggregate(list(V2 = df$b), list(df$a), c)
x
#   Group.1   V2
# 1       1 1, 2
# 2       2 3, 4
# 3       3    5

## V2 is a list, as you describe in your question
str(x)
# 'data.frame':  3 obs. of  2 variables:
#  $ Group.1: num  1 2 3
#  $ V2     :List of 3
#   ..$ 1: int  1 2
#   ..$ 3: int  3 4
#   ..$ 5: int 5

sink(file = "somefile.txt")
x
sink()
## now open up "somefile.txt" from your working directory


x$V2 <- sapply(x$V2, paste, collapse = ", ")
write.csv(x, file = "somefile.csv")
## now open up "somefile.csv" from your working directory