天道酬勤,学无止境

R: Create custom output from list object

I have a list that stores different data types and objects:

header <- "This is a header."
a <- 10
b <- 20
c <- 30
w <- 1:10
x <- 21:30
y <- 51:60
z <- 0:9

mylist <- list(header = header,
               const = list(a = a, b = b, c = c),
               data = data.frame(w,x,y,z))

Now I want R to display this list in the following format:

This is a header.

Values: a: 10    b: 20    c: 30

Data:         w  x  y z
          1   1 21 51 0
          2   2 22 52 1
          3   3 23 53 2
          4   4 24 54 3
          5   5 25 55 4
          6   6 26 56 5
          7   7 27 57 6
          8   8 28 58 7
          9   9 29 59 8
          10 10 30 60 9

Is there a convenient way to do this?

评论

If you want to use this kind of print regularly i would use a class as follows:

class(mylist) <- "myclass"

print.myclass <- function(x, ...){
  cat(x$header,"\n\n")
  cat("Values: ", sprintf("%s: %s", names(x$const), x$const), "\n\n")
  cat("Data:\n")
  print(x$data, ...)
}

If you want to learn more about generic function have a look at http://adv-r.had.co.nz/OO-essentials.html

Printing now results in:

> mylist #equal to print(mylist). Thats why we extended print with print.myclass
This is a header. 

Values:  a: 10 b: 20 c: 30 

Data:
    w  x  y z
1   1 21 51 0
2   2 22 52 1
3   3 23 53 2
4   4 24 54 3
5   5 25 55 4
6   6 26 56 5
7   7 27 57 6
8   8 28 58 7
9   9 29 59 8
10 10 30 60 9

Thanks to Ananda Mahto and David Arenburg for improving my original answer.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 在R中为水模型打印“漂亮”表(Print “pretty” tables for h2o models in R)
    问题 R有多个软件包,可帮助从统计模型输出中打印“漂亮”表(LaTeX / HTML / TEXT),并轻松比较替代模型规格的结果。 其中一些软件包是apsrtable , xtable , memisc , texreg , outreg和stargazer (有关示例,请参见此处:https: outreg -from-r-statistical-models-output /)。 是否有任何可比的R包支持h2o包的模型? 这是两个带有h2o简单GLM模型的示例,我希望将它们彼此h2o打印为“美丽”表。 # Load package and setup h2o library(h2o) localH2O <- h2o.init(ip = 'localhost', port = 54321, max_mem_size = '4g') # Load data prostatePath <- system.file("extdata", "prostate.csv", package = "h2o") prostate.hex <- h2o.importFile(path = prostatePath, destination_frame = "prostate.hex") # Run GLMs model.output.1 <- h2o.glm(y = "CAPSULE", x =
  • 如何在自定义对象的android中使用ArrayAdapter(how to use an ArrayAdapter in android of custom objects)
    问题 如何在Listview中使用自定义对象的属性。 如果我实现一个带有字符串列表的ArrayAdapter,它在Listview中会很好地显示,但是当我使用自定义对象的列表时,它只会输出内存地址。 我到目前为止的代码: ArrayList<CustomObject> allObjects = new ArrayList<>(); allObjects.add("title", "http://url.com")); ArrayAdapter<NewsObject> adapter = new ArrayAdapter<NewsObject>(this, android.R.layout.simple_list_item_1, android.R.id.text1, allNews); // Assign adapter to ListView listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Uri uri = Uri.parse( "http
  • 将对象集合加入逗号分隔的字符串中(Join collection of objects into comma-separated string)
    问题 在代码的许多地方,我们都有对象的集合,我们需要从中创建一个逗号分隔的列表。 集合的类型各不相同:它可能是我们需要从中获取特定列的DataTable,或者是List <Customer>等。 现在,我们遍历集合并使用字符串连接,例如: string text = ""; string separator = ""; foreach (DataRow row in table.Rows) { text += separator + row["title"]; separator = ", "; } 有更好的模式吗? 理想情况下,我希望我们可以重用一种方法,只需发送一个函数以从每个对象中获取正确的字段/属性/列即可。 回答1 // using System.Collections; // using System.Collections.Generic; // using System.Linq public delegate string Indexer<T>(T obj); public static string concatenate<T>(IEnumerable<T> collection, Indexer<T> indexer, char separator) { StringBuilder sb = new StringBuilder(); foreach (T t
  • 电源外壳。 创建一个类文件来保存自定义对象?(Powershell. Create a class file to hold Custom Objects?)
    问题 我使用Powershell的custom-object命令来保存数据点。 自定义对象仅创建一个对象,并为其分配一个变量。 Powershell可以更进一步,创建可以用来制造对象的新类吗? 在下面的示例中,我存储了三个数据:服务器名称,时间戳和服务器上发生事件以来的分钟数。 当我学习Powershell时,我将所有这些都放入二维数组中: $record = @("Server","Timestamp","Minutes") for ($j = 0; $j -lt 10; $j++){ $record += @("Server1","$(get-date)",$j) sleep 60 } $record | export-csv -path c:\record.csv -no type information export-csv不适用于数组,因此我开始使用自定义对象: $record = @() for ($j = 0; $j -lt 10; $j++){ $r = New-Object -TypeName PSObject $r | Add-Member -MemberType NoteProperty -Name Server -Value "" $r | Add-Member -MemberType NoteProperty -Name Timesteamp -Value
  • 如何在simple_list_item_2中构造和显示信息?(How to construct and display the info in simple_list_item_2?)
    问题 我从(测试)数据库中获取客户信息列表,并且想要显示它。 客户由具有name , info和note成员的Customer类表示。 其toString方法仅返回name 。 我创建了DemoDatabaseMainActivity ,它仅使用simple_list_item_1布局,因此仅显示客户的name -如下所示: public class DemoDatabaseMainActivity extends ListActivity { private CustomerDataSource datasource; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); datasource = new CustomerDataSource(this); datasource.open(); List<Customer> values = datasource.getAllCustomers(); ArrayAdapter<Customer> adapter = new ArrayAdapter<Customer>(this, android.R.layout.simple
  • QLExpression学习使用教程
    文章目录 QLExpress简介支持特性Maven引入例子github源码图分解提示例子初次使用Runner执行器设置执行器执行命令的设置 支持普通的Java语法执行运算符支持运算符分类示例 部分运算符列举样例使用表达式样例三目运算符样例数组定义Java对象使用数组遍历map遍历 定义函数示例 预定义装载函数定义操作符中文操作符替换二元操作符自定义自定义操作符需注意 多元操作符 操作符的使用操作符定义addOperatorreplaceOperatoraddFunction 小技巧绑定java类或者对象的methodmacro 宏定义编译脚本,查询外部需要定义的变量和函数关于不定参数的使用集合的快捷写法 其他相关缓存性能比较检查自定义的java类是否将char类型识别为String类定义位相关的定义类需导入才能使用关于栈的深度优化短路逻辑 场景场景一定义一个用户信息对象定义两个基础的功能函数初始化语句执行器定义一个逻辑判断函数调用执行器执行判断逻辑 场景二-审核流程场景三-物流分配 总结参考文献 QLExpress 简介 由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强需求而设计的一门动态脚本引擎解析工具。 为了解决当时电商规则动态编译、表达式高精度计算、复杂布尔运算、自定义函数和操作符号、语法树生成等需求而设计的。 支持特性 1
  • 如何为AutoCompleteTextView创建自定义BaseAdapter(How to create custom BaseAdapter for AutoCompleteTextView)
    问题 我一直在为AutoCompleteTextView创建自定义ArrayAdapter时遇到困难,尽管在互联网上找到了以下代码,但仍会出现以下错误: 下拉菜单不会出现。 自定义对象及其详细信息将不会出现。 因此,对于那些与我有问题或与我有相同问题的人,我建议改为将BaseAdapter用作AutoCompleteTextView。 回答1 以下是我使用ArrayAdapter的工作代码。 假设来自Web服务的响应数据如下所示: [ { "id": "1", "name": "Information Technology" }, { "id": "2", "name": "Human Resources" }, { "id": "3", "name": "Marketing and PR" }, { "id": "4", "name": "Research and Developement" } ] 然后在您的Android客户端中: 部门课: public class Department { public int id; public String name; } 自定义适配器类: public class DepartmentArrayAdapter extends ArrayAdapter<Department> { private final Context
  • python自带sqlite_Python使用sqlite3模块内置数据库
    1、python内置的sqlite3模块,创建数据库中的表,并向表中插入数据,从表中取出所有行,以及输出行的数量。 #!/usr/bin/env python3 #创建SQLite3内存数据库,并创建带有四个属性的sales表 #sqlite3模块,提供了一个轻量级的基于磁盘的数据库,不需要独立的服务器进程 import sqlite3 #使用‘:memory:'在内存中创建了一个数据库,创建了连接对象con来代表数据库 con = sqlite3.connect(':memory:') #创建表名为sales的表,将这个字符串赋值给query query = """CREATE TABLE sales (customer VARCHAR(20), product VARCHAR(40), amount FLOAT, date DATE);""" #使用连接对象的execute()方法执行query中的SQL命令 con.execute(query) #使用连接对象的commit()方法将修改提交(保存)到数据库 con.commit() #向表中插入几行数据 data = [('Richard Lucas','Notepad',2.50,'2019-01-02'), ('Jenny Kim','Binder',4.15,'2019-01-05'), ('Svetlana Crow
  • 如何自定义对要在json.dumps中使用的字典列表的排序(How to custom-sort a list of dict to use in json.dumps)
    问题 我有一个类似的清单 allsites = [ { 'A5': 'G', 'A10': 'G', 'site': 'example1.com', 'A1': 'G' }, { 'A5': 'R', 'A10': 'Y', 'site': 'example2.com', 'A1': 'G' } ] 我在json.dumps使用的: data = { 'Author':"joe", 'data':allsites } print json.dumps(data,sort_keys=True,indent=4, separators=(',', ': ')) 这将输出以下JSON: { "Author": "joe", "data": [ { "A1": "G", "A10": "G", "A5": "G", "site": "example1.com" }, { "A1": "G", (...) 我希望通过自定义键(“字母”)对这个JSON字符串的“数据”部分进行排序,在上述情况下,该site, A1, A5, A10将是site, A1, A5, A10 ,实际上如下所示: { "Author": "joe", "data": [ { "site": "example1.com", "A1": "G", "A5": "G", "A10": "G" }, { "site":
  • 如何使用复选框和自定义适配器从Listview获取选定的列表项?(How to get selected list items from a Listview with checkBox and Custom Adapter?)
    问题 我有一个带有CheckBox的ListView 。 我正在使用Custom Adapter来填充ListView 。 在我的xml文件中,我在底部有一个Button 。 我想要的是让用户选择ListView的行数,然后在他/她单击Button获得所选项目的位置,以便我可以获取特定行的对象以进行进一步的计算。 回答1 下面的代码片段正是您想要的。 package com.windrealm.android; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget
  • Android Spinner下拉复选框(android spinner dropdown checkbox)
    问题 我有这样的Spinner : <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/spinner1" android:background="@drawable/spinner_bg" android:popupBackground="@drawable/spinner_bg"/> 这是spinner_bg.xml : <item> <layer-list> <item> <shape> <gradient android:startColor="#ffffff" android:centerColor="#111111" android:endColor="#000000" android:angle="-90" /> <stroke android:width="2dp" android:color="#ffffff" /> <corners android:radius="2dp" /> <padding android:left="10dp" android:right="10dp"/> </shape> </item> <item > <bitmap android:gravity="right" android:src=
  • 自动完成并在文本框闪亮的多个值中选择(Auto complete and selection of multiple values in text box shiny)
    问题 是否可以使用类似于Google搜索的自动完成字符串来选择多个值,并在闪亮的文本框中选择堆栈溢出标签。 dataset<-cbind("John Doe","Ash","Ajay sharma","Ken Chong","Will Smith","Neo"....etc) 我想从上面的数据集中选择多个变量作为自动填充到我的文本框中,然后将其传递给我的服务器。 用户界面 shinyUI(fluidPage( titlePanel("test"), sidebarLayout( sidebarPanel( helpText("text"), textInput("txt","Enter the text",""), #Pass the dataset here for auto complete ), mainPanel( tabsetPanel(type="tab",tabPanel("Summary"),textOutput("text2")) ) ) )) 服务器 # server.R shinyServer(function(input, output) { output$text2<- renderText({ paste("hello",input$txt) }) } ) 已编辑 我已经使用了Shinysky的select2input来选择多个varialbes
  • 在R / Shiny中缓存图(caching plots in R/Shiny)
    问题 只是想知道是否有技巧/方式可以缓存通过我们闪亮的应用程序生成的图。 背景: 我们正在进行某种程度的计算密集型计算,最终生成了一个图。 我已经在缓存(使用备忘录)中完成的计算,全局上闪闪发光,但渲染图仍需要约0.75秒。 我只是想知道我们是否可以通过消除渲染图像所需的时间来减少该时间,以及是否已经有精巧的方法来完成此操作。 更多细节: 我正在使用网格来创建绘图(在这种情况下为热图。理想情况下,缓存是基于磁盘的,因为将绘图存储在内存中不会扩大规模。 谢谢! -阿比 回答1 假设您使用的是ggplot (对于Shiny,我敢打赌这是一个公平的假设)。 创建一个空列表来存储您的grob,例如Plist 。 当用户请求图形时,根据闪亮的输入创建字符串哈希检查图形是否已经保存,例如hash %in% names(Plist) 如果是,请提供该图表如果否,则生成图形,将grob保存到列表,并通过哈希将元素命名,例如Plist[hash] <- new_graph 回答2 编辑 从闪亮的1.2.0版本开始,支持缓存使用renderPlot()/plotOutput()创建的图像。 发行说明:https://shiny.rstudio.com/reference/shiny/1.2.0/upgrade.html 功能文档https://shiny.rstudio.com/reference
  • MyBatis Plus使用文档记录说明
    文章目录 MyBatis Plus 基础篇一、简介拥有强大的特性 二、框架结构三、基本开发环境1. 准备数据2. Hello World第一步:创建一个 Spring Boot 项目第二步:编辑 pom.xml 文件添加相关的依赖第三步:配置 application.yml 文件第四步:创建对应的类第五步:愉快地测试 四、常见注解案例:多表联查1. 准备数据User 用户表(按之前的)Role 角色表Permission 权限表UserRole 用户角色关联表RolePermission 角色权限关联表 2. 创建实体类User 类Role 类Permission 类UserRole 类RolePermission 类 3. 创建 Mapper 接口类UserMapper 接口类RoleMapper 接口类 4. 在启动类中扫描 mapper5. 编辑 application.yml 文件6. 一起愉快地测试 MyBatis Plus 核心功能篇一、代码生成器1. 具体使用1)添加依赖2)编写配置 2. 自定义模版引擎3. 自定义代码模版4. 自定义属性注入 二、CRUD 接口1. Mapper CRUD
  • 使用CMake将多个静态库合并为一个(Combining several static libraries into one using CMake)
    问题 我有一个与cmake邮件列表中描述的问题非常相似的问题,在该问题中,我们有一个项目依赖于许多静态库(所有库均由源代码构建在各个子模块中,每个子模块都有自己的CMakeLists.txt描述每个库的构建过程),希望合并为一个静态库,以发布给消费者。 我的库的依存关系可能会发生更改,因此,我不想让开发人员在这些更改的范围内负担更重的负担。 巧妙的解决方案是将所有库捆绑到一个库中。 有趣的是,在将目标设置为mylib并像这样使用它时, target_link_libraries命令不会合并所有静态变量。 。 target_link_libraries(mylib a b c d) 但是,奇怪的是,如果我使mylib项目成为可执行项目的子模块,并且仅链接顶层可执行文件CMAkeLists.txt中的mylib ,则该库似乎已合并。 即mylib是27 MB,而不是将目标设置为仅构建mylib时的3MB。 有一些解决方案描述了将库文件解压缩到目标文件并重新组合(在此处和此处),但是当CMake看起来完全能够自动合并库时,如上面示例中所述,这似乎非常笨拙。 是我缺少的魔术命令,还是推荐的制作发布库的优雅方式? 回答1 给定最简单的工作示例,我可以想到:2个类, a和b ,其中a取决于b 。 。 啊 #ifndef A_H #define A_H class aclass { public
  • 为什么SQLAlchemy用sqlite插入比直接使用sqlite3慢25倍?(Why is SQLAlchemy insert with sqlite 25 times slower than using sqlite3 directly?)
    问题 为什么这个简单的测试用例用SQLAlchemy插入100,000行比直接使用sqlite3驱动程序慢25倍? 我在现实世界的应用程序中看到过类似的减速情况。 难道我做错了什么? #!/usr/bin/env python # Why is SQLAlchemy with SQLite so slow? # Output from this program: # SqlAlchemy: Total time for 100000 records 10.74 secs # sqlite3: Total time for 100000 records 0.40 secs import time import sqlite3 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, create_engine from sqlalchemy.orm import scoped_session, sessionmaker Base = declarative_base() DBSession = scoped_session(sessionmaker()) class Customer(Base): __tablename__ =
  • 什么是Func,如何使用以及何时使用(What is Func, how and when is it used)
    问题 什么是Func<> ,它的作用是什么? 回答1 Func<T>是方法的预定义委托类型,该方法返回一些T类型的值。 换句话说,您可以使用此类型引用返回T值的方法。 例如 public static string GetMessage() { return "Hello world"; } 可能像这样被引用 Func<string> f = GetMessage; 回答2 将其视为占位符。 当您的代码遵循某种特定模式但不必绑定到任何特定功能时,此功能将非常有用。 例如,考虑Enumerable.Select扩展方法。 模式是:对于序列中的每个项目,从该项目中选择某个值(例如,属性),并创建一个由这些值组成的新序列。 占位符是:一些选择器函数,实际上获取上述序列的值。 此方法采用Func<T, TResult>代替任何具体函数。 这使得它可以在上述模式适用的任何上下文中使用。 例如,假设我有一个List<Person>而我只想要列表中每个人的名字。 我可以做这个: var names = people.Select(p => p.Name); 或者说我想要每个人的年龄: var ages = people.Select(p => p.Age); 马上,您将看到我如何能够利用具有两个不同功能( p => p.Name和p => p.Age )的表示模式的同一代码(使用Select )
  • Android中自定义ArrayAdapter中的自定义getFilter(Custom getFilter in custom ArrayAdapter in android)
    问题 我在自定义arrayAdapter中实现自定义getFilter遇到麻烦。 实际上我不知道如何实现它。 尝试了各种代码,但仍然没有运气。 这是我的自定义阵列适配器。 package com.test.FilterableList.Adapters; import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import com.test.FilterableList.Models.ListTO; import com.test.FilterableList.R; import android.widget.Filterable; public class FilterableAdapter extends ArrayAdapter<ListTO> implements Filterable { // declaring our ArrayList of items public ArrayList
  • How to create JSON from strings without creating a custom class using JSON.Net library
    I have this very simple method as below: //my current file using Newtonsoft.Json; string key1 = "FirstKey"; string key2 = "SecondKey"; string key3 = "ThirdKey"; private string CreateJson(string val1, string val2, string val3,string val4, string val5, string val6) { //process the six arguments and three key-related member variables to create a JSON array //don't want to use JsonConvert.SerializeObject the way I'm doing below as it requires creating a class var configs = new List<CustomClass> { new CustomClass{ FirstKey = val1,SecondKey= val2,ThirdKey= val3} , new CustomClass{ FirstKey= val4
  • How to display picture from web in ListActivity Customer item with SimpleAdapter?
    I Create a Activity Extends ListActivity I can used SimpleAdapter to display R.drawable.picture but I want to display picture from web in CustomerItem How do? List data; List> plan_list; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.plan_list); plan_list = getPlanList(); Plan_SimpleAdapter adapter = new Plan_SimpleAdapter(this, plan_list, R.layout.plan_item, new String[] { "Title", "miaoshu","img" }, new int[] { R.id.textView1,R.id.miaoshu, R.id.plan_logo }); setListAdapter(adapter); } // return plan list private List