list - 将列表写入文本文件,保留名称,R

标签 list r

我想将列表写入文本文件,并保留名称。

这类似于 R: Print list to a text file但我也想在每行的开头打印出名称:

> print(head(mylist,2))
$first
[1] 234984  10354  41175 932711 426928
$second
[1] 1693237   13462

mylist.txt
first   234984  10354  41175 932711 426928
second  1693237   13462

有什么想法吗?

非常感谢。

最佳答案

cat 函数将打印到设备(默认为控制台)并且不添加任何常用注释,但它不能接受列表作为参数,因此一切都需要是原子向量。 deparse(substitute()) 策略是恢复传递给函数的列表名称的方法。仅在函数内使用 names(x) 无法恢复原始参数的名称。

 mylist <- list(first =c( 234984,  10354,  41175, 932711, 426928), 
                second =c(1693237, 13462))
 fnlist <- function(x){ z <- deparse(substitute(x))
                         cat(z, "\n")
                         nams=names(x) 
                   for (i in seq_along(x) ) cat(nams[i],  x[[i]], "\n")}
 fnlist(mylist)
mylist 
second 234984 10354 41175 932711 426928 
first 1693237 13462 

此版本将输出一个文件(如果您想在名称和值之间使用制表符,则可以替换“\t”

fnlist <- function(x, fil){ z <- deparse(substitute(x))
                         cat(z, "\n", file=fil)
                         nams=names(x) 
                   for (i in seq_along(x) ){ cat(nams[i], "\t",  x[[i]], "\n", 
                                            file=fil, append=TRUE) }
                         }
 fnlist(mylist, "test")

关于list - 将列表写入文本文件,保留名称,R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261590/

相关文章:

c++ - 从 Rcpp 函数接收结果后 session 崩溃

r - dplyr/tidyevaluation : How to pass an expression in mutate as a string?

Java程序将列表中给定数字的连续数字分组<list>

r - R中的递减乘法

R ggplot2 : draw segment between points

r - 双重合并r中的两个数据帧

python - 打印循环出队的非空部分

python - 从列表列表中删除特定类的所有元素

python - 基于python中的单个列表对多个列表进行排序

java - 计算整数数组元素的平方根时的 Arrays.asList 问题