外来应用程序三星应用开发者平台

我是java程序员,在网上写了很多简历。。。刚接到一个电话,说外地有个项目需要大量开发人员,如果_百度知道
我是java程序员,在网上写了很多简历。。。刚接到一个电话,说外地有个项目需要大量开发人员,如果
话面试通过,就直接过去做项目。这种情况有程序员遇到过么?
我有更好的答案
你找工作总有几个条件吧,比如:薪资、地点、工作内容等等。如果距离太远,你可以申请电话面试,然后在细谈。现在Java工作很好找,查一查这家单位的信息,看看靠谱不,不靠谱就算了。
他就是告诉我电话面试,然后我说我现在没经验。我要3000,他说通过直接给8000其它什么都不负责,然后叫我准备电话面试
那就试试呗 公司的信息网上去查查 小心传销就行了。公司如果在北上广,你能力好的话8000都是小case。
不要去。。。你就当这是老前辈的建议
很正常,我也遇到过啊,不过最后没有去成,因为那边说好联系我,后来拖了好久没有联系,等他再联系我的时候,我都在其他公司开始上班了。
其他类似问题
为您推荐:
java程序员的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁只需一步,快速开始
只需一步,快速开始
后使用快捷导航没有帐号?
请添加对本版块的简短描述
查看: 1861|回复: 1
Tkinter 控件详细介绍
Tkinter支持15个核心的窗口部件,这个15个核心窗口部件类列表如下:
窗口部件及说明:
一个简单的按钮,用来执行一个命令或别的操作。
组织图形。这个部件可以用来绘制图表和图,创建图形编辑器,实现定制窗口部件。
Checkbutton:
代表一个变量,它有两个不同的值。点击这个按钮将会在这两个值间切换。
文本输入域。
一个容器窗口部件。帧可以有边框和背景,当创建一个应用程序或dialog(对话)版面时,帧被用来组织其它的窗口部件。
显示一个文本或图象。
显示供选方案的一个列表。listbox能够被配置来得到radiobutton或checklist的行为。
菜单条。用来实现下拉和弹出式菜单。
Menubutton:
菜单按钮。用来实现下拉式菜单。
显示一文本。类似label窗口部件,但是能够自动地调整文本到给定的宽度或比率。
Radiobutton:
代表一个变量,它可以有多个值中的一个。点击它将为这个变量设置值,并且清除与这同一变量相关的其它radiobutton。
允许你通过滑块来设置一数字值。
Scrollbar:
为配合使用canvas, entry, listbox, and text窗口部件的标准滚动条。
格式化文本显示。允许你用不同的样式和属性来显示和编辑文本。同时支持内嵌图象和窗口。
Toplevel:
一个容器窗口部件,作为一个单独的、最上面的窗口显示。
注意在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟。
所有这些窗口部件提供了Misc和几何管理方法、配置管理方法和部件自己定义的另外的方法。此外,Toplevel类也提供窗口管理接口。这意味一个典型的窗口部件类提供了大约150种方法。
Button窗口部件
Button(按钮)窗口部件是一个标准的Tkinter窗口部件,用来实现各种按钮。按钮能够包含文本或图象,并且你能够将按钮与一个Python函数或方法相关联。当这个按钮被按下时,Tkinter自动调用相关联的函数或方法。
按钮仅能显示一种字体,但是这个文本可以跨行。另外,这个文本中的一个字母可以有下划线,例如标明一个快捷键。默认情况,Tab键用于将焦点移动到一个按钮部件。
一、那么什么时候用按钮部件呢?
简而言之,按钮部件用来让用户说“马上给我执行这个任务”,通常我们用显示在按钮上的文本或图象来提示。按钮通常用在工具条中或应用程序窗口中,并且用来接收或忽略输入在对话框中的数据。
关于按钮和输入的数据的配合,可以参看Checkbutton和Radiobutton部件。
普通的按钮很容易被创建,仅仅指定按钮的内容(文本、位图、图象)和一个当按钮被按下时的回调函数即可:
b = Button(master, text=&OK&, command=self.ok)
没有回调函数的按钮是没有用的,当你按下这个按钮时它什么也不做。你可能在开发一个应用程序的时候想实现这种按钮,比如为了不干扰你的beta版的测试者:
b = Button(master, text=&Help&, state=DISABLED)
如 果你没有指定尺寸,按钮的大小将正好能够容纳它的内容。你可以用padx和pady选项来增加内容与按钮边框的间距。你也可以用height和width 选项来显式地设置按钮的尺寸。如果你在按钮中显示文本,那么这些选项将以文本的单位为定义按钮的尺寸。如果你替而代之显示图象,那么按钮的尺寸将是象素 (或其它的屏幕单位)。你实际上甚至能够用象素单位来定义文本按钮的尺寸,但这可能带来意外的结果。下面是指定尺寸的一段例子代码:
f = Frame(master, height=32, width=32)
f.pack_propagate(0) # don't shrink
b = Button(f, text=&Sure!&)
b.pack(fill=BOTH, expand=1)
按钮能够显示多行文本(但只能用一种字体)。 你可以使用多行或wraplength选项来使按钮自己调整文本。当调整文本时,使用anchor,justify,也可加上padx选项来得到你所希望的格式。一个例子如下:
b = Button(master, text=longtext, anchor=W, justify=LEFT, padx=2)
为了使一个普通的按钮看起来像凹入的,例如你想去实现某种类型的工具框,你可简单地将relief的值从&RAISED&改变为&SUNKEN:
b.config(relief=SUNKEN)
你也可能想改变背景。注意:一个大概更好的解决方案是使用一个Checkbutton或Radiobutton其indicatoron选项的值设置为false:
b = Checkbutton(master, image=bold, variable=var, indicatoron=0)
Button窗口部件支持标准的Tkinter窗口部件接口,加上下面的方法:
flash():频繁重画按钮,使其在活动和普通样式下切换。
invoke() :调用与按钮相关联的命令。
下面的方法与你实现自己的按钮绑定有关:
tkButtonDown(), tkButtonEnter(), tkButtonInvoke(), tkButtonLeave(), tkButtonUp()
这些方法可以用在定制事件绑定中,所有这些方法接收0个或多个形参。
Button窗口部件支持下面的选项:
activebackground, activeforeground
类型:颜色;
说明:当按钮被激活时所使用的颜色。
类型:常量;
说明:控制按钮上内容的位置。使用N, NE, E, SE, S, SW, W, NW, or CENTER这些值之一。默认值是CENTER。
background (bg), foreground (fg)
类型:颜色;
说明:按钮的颜色。默认值与特定平台相关。
类型:位图;
说 明:显示在窗口部件中的位图。如果image选项被指定了,则这个选项被忽略。下面的位图在所有平台上都有 效:error, gray75, gray50, gray25, gray12, hourglass, info, questhead, question, 和 warning.
Tkinter类之窗口部件类
这 后面附加的位图仅在Macintosh上有 效:document, stationery, edition, application, accessory, folder, pfolder, trash, floppy, ramdisk, cdrom, preferences, querydoc, stop, note, 和 caution.
你也可以从一个XBM文件中装载位图。只需要在XBM文件名前加一个前缀@,例如&@sample.xbm&。
borderwidth (bd)
类型:整数;
说明:按钮边框的宽度。默认值与特定平台相关。但通常是1或2象素。
类型:回调;
说明:当按钮被按下时所调用的一个函数或方法。所回调的可以是一个函数、方法或别的可调用的Python对象。
类型:光标;
说明:当鼠标移动到按钮上时所显示的光标。
类型:常量;
说明:如果设置了,则按钮为默认按钮。注意这个语法在Tk 8.0b2中已改变。
disabledforeground
类型:颜色;
说明:当按钮无效时的颜色。
类型:字体;
说明:按钮所使用的字体。按钮只能包含一种字体的文本。
highlightbackground, highlightcolor
类型:颜色;
说明:控制焦点所在的高亮边框的颜色。当窗口部件获得焦点的时候,边框为highlightcolor所指定的颜色。否则边框为highlightbackground所指定的颜色。默认值由系统所定。
highlightthickness
类型:距离;
说明:控制焦点所在的高亮边框的宽度。默认值通常是1或2象素。
类型:图象;
说明:在部件中显示的图象。如果指定,则text和bitmap选项将被忽略。
类型:常量;
说明:定义多行文本如何对齐。可取值有:LEFT, RIGHT, 或 CENTER。
padx, pady
类型:距离;
说明:指定文本或图象与按钮边框的间距。
类型:常量;
说明:边框的装饰。通常按钮按下时是凹陷的,否则凸起。另外的可能取值有GROOVE, RIDGE, 和 FLAT。
类型:常量;
说明:按钮的状态:NORMAL, ACTIVE 或 DISABLED。默认值为NORMAL。
类型:标志;
说明:表明用户可以Tab键来将焦点移到这个按钮上。默认值是一个空字符串,意思是如果按钮有按键绑定的话,它可以通过所绑定的按键来获得焦点。
类型:字符串;
说明:显示在按钮中的文本。文本可以是多行。如果bitmaps或image选项被使用,则text选项被忽略。
textvariable
类型:变量;
说明:与按钮相关的Tk变量(通常是一个字符串变量)。如果这个变量的值改变,那么按钮上的文本相应更新。
类型:整数;
说明:在文本标签中哪个字符加下划线。默认值为-1,意思是没有字符加下划线。
width, height
类型:距离;
说明:按钮的尺寸。如果按钮显示文本,尺寸使用文本的单位。如果按钮显示图象,尺寸以象素为单位(或屏幕的单位)。如果尺寸没指定,它将根据按钮的内容来计算。
wraplength
类型:距离;
说明:确定一个按钮的文本何时调整为多行。它以屏幕的单位为单位。默认不调整。
Tkinter模块提供了相应于Tk中的各种窗口部件类型的类和一定数量的mixin和别的帮助类(mixin是一个类,被设计来使用多态继承与其它的类结合)。当你使用Tkinter时,你不将直接访问mixin类。
一、实施mixins
通过root窗口和窗口部件类,Misc类被用作mixin。它提供了大量的Tk和窗口相关服务,这些服务对所有Tkinter核心窗口部件者有效。这些通过委托完成;窗口部件仅仅直接请求适当的内部对象。
Wm类通过root窗口和顶级窗口部件类被用作mixin。通过委托它提供了窗口管理服务。
使用委托像这样简化你的应用程序代码:一旦你有一窗口部件,你能够使用这个窗口部件的实例的方法访问Tkinter的所有部份。
二、Geometry(几何学)与mixins
Grid,Pack,Place这些类通过窗口部件类被用作mixins。通过委托,它们也提供了访问不同几何管理的支持。
下面是Geometry Mixins的列表及说明:
管理器及说明:
Grid:grid几何管理器允许你通过在一个二维网格中组织窗口部件来创建一个类似表的版面。
Pack:pack几何管理器通过在一个帧中把窗口部件包装到一个父部件中来创建一个版面。为了对窗口部件使用这个几何管理器,我们在这个窗口部件上使用pack方法来集成。
Place:place几何管理器让你显式将一个窗口部件放到给定的位置。要使用这个几何管理器,需使用place方法。
三、窗口部件配置管理
Widget类使用 geometry mixins来混合Misc类,并通过cget和configure方法来增加配置管理,也可以通过一个局部的字典接口。
窗口部件的配置
要配置一个窗口部件的外观,你用选项比使用方法调用好。典型的选项包括text、color、size、command等等。对于处理选项,所有的核心窗口部件执行同样的配置接口:
widgetclass(master, option=value, ...) =& widget
创 建这个窗口部件的一个实例,这个实例作为给定的master的孩子,并且使用给定的选项。所有的选项都有默认值,因此在简单的情况下,你仅需要指定这个 master。如果你想的话,你也可以不指定master;Tkinter这时会使用最近创建的root窗口作为master。注意这个name选项仅能 在窗口部件被创建时设置。
cget(option) =& string
返回一个选项的当前值。选项的名字和返回值都是字符串。要得到name选项,使用str(widget)代替。
configure(option=value, ...), config(option=value, ...)
设置一个或多个选项(作为关键字参数给定)。
注意一些选项的名字与Python中的保留字相同(class,from等)。要使用这些作为关键字参数,仅需要在这些选项名后添加一下划线(class_,from_)。注意你不能用此方法来设置name选项;name选项只能在窗口部件被创建时设置。
为了方便起见,窗口部件也实现一个局部的字典接口。 __setitem__ 方法映射configure,而__getitem__方法映射cget。你可以使用下面的语法来设置和查询选项:
value = widget[option]
widget[option] = value
注意每个赋值都导致一个对Tk的调用。如果你希望去改变多个选项,单独地调用(config或configure)去改变它们是一个好的主意。
这下面的字典方法也适用于窗口部件:
keys() =& list
返回窗口部件中所有可以被设置的选项的一个列表。name选项不包括在这个列表中(它不能通过字典接口被查询或修改)。
向后兼容性
关键字参数在Python1.3时被引入。之前,使用原始的Python字典将选项传递给窗口构造器和configure方法。原代码类似如下:
self.button = Button(frame, {&text&: &QUIT&, &fg&: &red&, &command&: frame.quit})
self.button.pack({&side&: LEFT})
关键字参数语法更优雅和少容易发生错误。但是为了与存在的代码兼容,Tkinter仍支持老的语法。在新的程序中你不应再用老的语法,即使是在某些情况下是很有吸引力的。例如,如果你创建了一个定制的窗口部件,它需要沿它的父类传递配置选项,你的代码可能如下:
def __init__(self, master, **kw):
& & Canvas.__init__(self, master, kw) # kw 是一个字典
上面的代码在当前版本的Tkinter下工作的很好,但是它在将来的版本下可能不工作。一个通常的办法是使用apply函数:
def __init__(self, master, **kw):
& & apply(Canvas.__init__, (self, master), kw)
这个apply函数使用了一个函数(一个未约束的方法),一个带参数的元组(它必须包括self,因为我们调用一个未约束的方法),一个可选的,提供了关键字参数的字典。
窗口部件的样式之颜色
所有的Tkinter标准窗口部件提供了一套样式设置选项,这让你可以去修改这些窗口部件的外观如颜色、字体和其它的可视外观。
大部份窗口部件都允许你指定窗口部件和文本的颜色,这可以使用background和foreground选项。要指定颜色,你可以使用颜色名,也可以使用红、绿、蓝颜色组合。
Tkinter 包括一个颜色数据库,它将颜色名映射到相应的RGB值。这个数据库包括了通常的名称如Red, Green, Blue, Yellow, 和 LightBlue,也可使用外来的如Moccasin,PeachPuff等等。在X window系统上,颜色名由X server定义。你能够找到 一个名为xrgb.txt的文件,它包含了一个由颜色名和相应RGB值组成的列表。在Windows和Macintosh系统上,颜色名表内建于Tk中。
在Windows下,你可以使用Windows系统颜色(用户可以通过控制面板来改变这些颜色):
SystemActiveBorder, SystemActiveCaption, SystemAppWorkspace, SystemBackground,
SystemButtonFace, SystemButtonHighlight, SystemButtonShadow, SystemButtonText,
SystemCaptionText, SystemDisabledText, SystemHighlight, SystemHighlightText,
SystemInactiveBorder, SystemInactiveCaption, SystemInactiveCaptionText, SystemMenu,
SystemMenuText, SystemScrollbar, SystemWindow, SystemWindowFrame, SystemWindowText。
在Macintosh上,下面的系统颜色是有效的:
SystemButtonFace, SystemButtonFrame, SystemButtonText, SystemHighlight, SystemHighlightText, SystemMenu, SystemMenuActive, SystemMenuActiveText, SystemMenuDisabled, SystemMenuText, SystemWindowBody。
颜色名是大小写不敏感的。许多颜色名词与词之间有无格都有效。例如&lightblue&, &light blue&, 和
&Light Blue&都是同一颜色。
2、RGB格式
如果你需要显式地指定颜色名,你可以使用如下格式的字符串:
RR, GG, BB 分别是red,green和blue值的十六进制表示。下面的例子演示了如何将一个颜色三元组转换为
一个Tk颜色格式:
tk_rgb = &#%02x%02x%02x& % (128, 192, 200)
Tk也支持用形如&#RGB&和&rrrrggggbbbb&去分别指定16和65536程度之间的值。
你可以使用窗口部件的winfo_rgb方法来将一个代表颜色的字符串(名字或RGB格式)转换为一个三元组:
rgb = widget.winfo_rgb(&red&)
red, green, blue = rgb[0]/256, rgb[1]/256, rgb[2]/256
注意winfo_rgb返回16位的RGB值,范围在0~65535之间。要将它们映射到更通用的0~255范围内,你必须将每个值都除以256(或将它们向右移8位)。
窗口部件的样式之字体
窗口部件允许你显示文本和指定所使用的字体。所有的窗口部件都提供了合理的默认值,你很少需要去为简单元素如标签和按钮指定字体。
字体通常使用font窗口部件选项指定。Tkinter支持一定数量的不同字体描述类型:
* Font descriptors
* User-defined font names
* System fonts
* X font descriptors
Tk8.0以前的版本仅X font描述被支持。
1、字体描述
从Tk8.0开始,Tkinter支持独立于平台的字体描述。你可以使用元组来指定一个字体,这个元组包含了一个字体类型名字,一个以磅为单位的高度,代表一个或多个样式的字符串。例如:
(&Times&, 10, &bold&)
(&Helvetica&, 10, &bold italic&)
(&Symbol&, 8)
要得到默认的尺寸和类型,你可以给出作为单一字符串的字体名。如果这个字体类型名字没有包括空格,你也可以给这个字符串自身增加尺寸和样式:
&Times 10 bold&
&Helvetica 10 bold italic&
&Symbol 8&
在大部份Windows平台上存在如下有效的字体类名:
Arial (相 应 于 Helvetica), Courier New (Courier), Comic Sans MS, Fixedsys, MS Sans Serif, MS Serif, Symbol, System, Times New Roman (Times), 和 Verdana:
Tkinter类之窗口部件类
注意:如果这个字体类型名包含空格,你必须使用上面所描述的元组语法。
有效的样式有normal, bold, roman, italic, underline, and overstrike。
Tk8.0自动映射Courier, Helvetica, 和Times到所有平台上相应的本地字体类型名。此外,在Tk8.0下字体格式不会引起问题,如果Tk不能找出确切的匹配,它会试着找类似的字体,如果失败,Tk就使用特定平台的默认字体。
Tk4.2在Windows下同样支持这种字体描述。这儿有几个限制,包括字体类型名必须在平台上存在,并非这所有上面样式名都存在(或它们中的一些有不同的名字)。
此外,Tk8.0允许你去创建已命名的字体并且当为一个窗口部件指定字体时使用它们的名字。
tkFont模块提供一个Font类,这个类允许你去创建字体实例。你可以随处使用这样一个实例。你也可能使用一个字体实例来得到字体的量度,包括存在于那个字体中的字符串所站用的尺寸。
tkFont.Font(family=&Times&, size=10, weight=tkFont.BOLD)
tkFont.Font(family=&Helvetica&, size=10, weight=tkFont.BOLD,
& && && && & slant=tkFont.ITALIC)
tkFont.Font(family=&Symbol&, size=8)
如果你修改一个已命名的字体(使用config方法),这个改变将自动影响到所有使用这个字体的窗口部件。
Font构造器支持下列的样式选项(注意常量被定义在tkFont模块中):
样式选项及说明:
family选项
类型:字符串
说明:字体类型
类型:整型
说明:以磅为单位的字体的尺寸。要以象素为单位的话,使用负值。
weight选项
类型:常量
说明:字体的粗细。使用NORMAL或BOLD。默认为NORMAL。
类型:常量
说明:字体倾斜。使用NORMAL或ITALIC。默认为NORMAL。
underline选项
类型:标志
说明:字体下划线。如果1(true),字体加下划线。默认为0(false)。
overstrike选项
类型:标志
说明:字体划线。如果为1(true),则字体上有一条线;默认为0(false)。
3、系统字体
Tk也支持特定系统的字体名。在X下,这些通常是字体别名如fixed,6x10等等。
在Windows下,这些包括ansi,ansifixed,device,oemfixed,system和systemfixed:
Tkinter类之窗口部件类
在Macintosh上,系统字体名是application和system。
注意:系统字体是字体名,不是字体类型名,它们不能与尺寸或样式属性结合。为了可移植性,尽可能避免使用这些名字。
4、X字体描述
X字体描述是如下格式的字符串(星号所代表的是无关字段。具体细节可查看Tk文档或X手册):
-*-family-weight-slant-*--*-size-*-*-*-*-charset
典型的字体类别如:Times, Helvetica, Courier or Symbol。
weight可以是&Bold&或&Normal&。slant取值中R代表&roman&(正常),I代表&italic&,o代表团&oblique&(实际上等同于italic)。
size是字体的高度,以十分之一磅为单位。一英寸72磅,但是一些低分辩率的显示器的1磅较常规的大些,以便小字体能够清晰显示。charset(字符集)通常是ISO8859-1 (ISO Latin 1), 但一些字体也使用其它的值。
下面的描述的family取值是Times,weight取值是Bold,slant取值是R,size取值是120,charset取值是ISO8859-1:
-*-Times-Bold-R-*--*-120-*-*-*-*-ISO8859-1
如果你不关心charset(字符集),或你使用如Symbol的字体(这种字体类别有特定的字符集),那么你可以使用一个星号作为描述的最后部分:
-*-Symbol-*-*-*--*-80-*
典 型的X server至少支持Times, Helvetica, Courier等字体,size有8, 10, 12, 14, 18, 和 24 磅,weight有normal,bold、italic(Times)或oblique(Helvetica, Courier)。大多数的服务器都有 支持随意查看字体。你可以使用如xlsfonts和xfontsel来检查你所访问的服务器的字体。
这种类型的字体描述可以用在Windows 和Macintosh上。注意:如果你使用Tk4.2,你必须牢记字体类型必须是Windows所支持的一种。
Tkinter的控件很全面啊!
Powered by您所在的位置:
苹果应用程序网店存在诸多缺陷惹开发者不满
日23:24  
编译/梦希 
腾讯科技讯 北京时间7月19日消息,据国外媒体报道,苹果iPhone应用程序网店(App Store)推出已有一年时间,这期间该网站取得了巨大的成功。但苹果公司对待应用程序网店的政策,仍无法让所有第三方开发者满意。Marco Arment就是正在抱怨的开发者之一。他开发的软件被苹果公司数次推荐,而他本人也通过在闲暇时间制作软件挣得数千美元。尽管如此,Arment还是埋怨苹果应用程序网店存在不少缺陷。这些缺陷有些甚至出现在新推出的栏目之中,时不时的给开发者带来麻烦。“把开发iPhone应用软件当成一项可以从事的职业,过去我从未质疑过这一点。”他说到,“但现在,我第一次感到有些担心。”Arment在一篇长文中详细描述了开发人员的情况及苹果公司的政策,归纳出了如下若干点缺陷:-软件审批仍需花费很长时间,大约为一周。而现在软件被驳回的理由通常微不足道,很多应用程序需要审批2次才可上线;-在WWDC大会上,苹果拒绝回答任何与应用程序网店有关的问题,而开发者参会需要花费数千美元;-苹果新推出的家长控制及年龄适用评定系统十分古怪。所有提供上网功能的软件都必须向用户说明,它们包含了裸露、粗口及滥用药物的内容;-开发者用来管理应用程序的iTunes Connect错误太多,并经常导致失误操作;-同苹果官方交流十分困难;-苹果自己对这一套系统感觉良好。评论称苹果应当对此类问题及时响应,并迅速做出调整。因为没有理由让第三方开发者在这种两难的情况下为自己工作。况且苹果应用程序网店是否涉嫌垄断的问题,已经引发了业界广泛的讨论。(编译/梦希)
[责任编辑:jasondeng]
更多关于“”的新闻
( 10:37:46)
( 10:37:06)
( 15:13:32)
( 13:38:25)
( 08:02:00)
( 00:51:00)
( 07:21:00)
( 23:55:43)
请您文明上网、理性发言并遵守
Copyright & 1998 - 2015 Tencent. All Rights Reserved2.2 函数read.csv、read.xls以及外来程序包
本文所属图书&>&
本书共10章,第1-5章介绍日软件和统计的基本知识,第6-10章详细讨论应用和现代回归树模型。第1章介绍数据特征,用R展示不同类型的变量和数据分类;第2章详细讲解如何用日实现数据的导入和导出;第3章分别对分类型&&
数据一般在一个外部文档里,而外部文档格式多种多样,知道哪几种数据可以导入R非常重要。电子表格可能存在于CSV、XLS、XLSX或者ODS文档中。还有更多可能的格式,我们将范围限定在上述这些文件格式中。文档Employ.dat和SCV.csv在gedit和Excel中的快照截图如下图所示。两个文档的简要特征归纳为如下列表:
第一行列出了数据集的变量名
每一个观测从新的一行开始
在DAT文档中,分隔符是制表符(\t),在CSV文档中则是逗号(,)
在DAT文档中,三列都是数值型
在CSV文档中,前五列都是数值型,最后一列是字符型
总之,两个文档都有自己定义好的数据结构
下图强调的主题是,当外部文档有一个定义良好的结构时,在导入数据时充分利用这种结构是至关重要的。
R中导入数据的最核心的函数是utils包里的read.table,这个函数的第一个参数是文件名,见下图。我们可以看到当header=TRUE时,表明第一行是列名(变量名),需要正确指定分隔符sep。例如,对于Employ数据集,分隔符是制表符(\t),对于CSV文件来说,分隔符是逗号(,)。通常情况下,每一行也可能有一个名字。例如,在一个调查数据集中的客户名或者序列号等。这些都可以通过row.names来指定。行名在外部文件中不一定是现成的。也就是说,无论是行名还是列名,不必是被导入数据的一部分。
在许多文件中,有许多缺失的观测。通过na.strings定义缺失值可以顺利地导入这种数据集。缺失值可以用空白单元格、时期等来代替。可以在read.table的介绍中获得其他选项的更多细节。我们注意到,read.csv、read.delim等函数是read.table函数的变种。Excel文件如XLS和XLSX格式的文件可以使用gdata包里的read.xls函数导入。
让我们从导入简单数据开始。
例2.2.1 读取DAT文件:Ryan(2007)分析过的数据集可以在链接:. wiley.
com/public/sci_tech_med/engineering_statistics/. Download中找到。下载数据文件engineering_statistics.zip并解压到R的工作空间。问题在Ryan的练习1.82中表述过。在数据Employ.dat中有威斯康星州零售批发业、副食品业、合金业5年里员工人数的月度数据。你的任务是将其导入R中。需要注意三个变量,即三个行业员工人数,它们是数值型变量,在R会话中它们也应该是数值型变量。
一个有用的做法是打开源文件并检查数据的性质。例如,你应该问在DAT数据文件里怎么理解数字3.e+002。在接下来的外部文件导入部分,我们将使用read.table函数来导入文件。
例2.2.2 读取CSV文件:Ryan(2007)用了Gupta(1997)分析过的数据集。在研究抗生素产品时响应变量是分离清除量,其值越小意味着质量越好。这个实验有5个自变量,都是因子型变量,每个变量有两个水平。实验目的是决定这些因子的最好组合以得到最小的响应变量值。
有时需要的数据集可以由不同的CSV文件提供。在这种情况下,我们首先根据不同的目的读取它们,然后将它们组合为一个新的元文件。一个小窍门是用merge函数。假设由变量E,我们知道上述数据集被分成两个数据集,分别是SCV_Usual.csv和SCV_Modified.csv。我们将它们分别读取为数据对象然后再将这两个对象整合到一个对象里。
我们将在下次练习的时候执行上述操作。
例2.2.3 用外部程序包读取文件:SPSS、SAS、STATA等是一些非常流行的统计软件包。每一个软件包都有自己的数据文件结构。foreign包是随着R迁移开发的,帮助R在这些程序包里读取数据。rootstock数据集是多元统计领域比较流行的一个数据集,在链接中可以找到。这个数据集也可在STATA软件上使用。我们将看到R如何读取这个数据集。
让我们进行实际演练。
实际演练:外部文件的数据导入
使用R里正确的函数可以导入外部文件。此处,我们将使用read.table、read.csv以及read.sta来实现这个目标。
1.使用函数list.files()确保在工作目录中有必要的文件Employ.dat、SCV.csv、SCV_Usual.csv和SCV_Modified.csv。
2.如果在列表里没有文件,可以使用getwd()找到工作目录,然后将文件复制到该目录下。此外,你可以将工作目录更改为你想要的文件夹:setwd(&C:/my_files_are_here&)。
3.使用代码employ&-read. table(&Employ. dat&, header=TRUE) 读取数据Employ.dat。
4.预览数据并确保数据已正确导入:View(employ)。
5.检查数据集的类型以及各个变量的类型确保正确导入:class(employ);sapply (employ, class)。
6.从SCV.csv中导入分离清除量:SCV&-read. csv(&SCV. csv&, header=TRUE)。
7.运行sapply(SCV,class),你将看到变量A到D都是数值型,将A变量转换为因子型:class(SCV$A)&-&factor&or SCV$A&-as. factor(SCV$A)。
8.对变量B到D重复以上步骤。
9.在SCV.csv文件中的数据被变量E分成两个文件,即SCV_Usual.csv和SCV_Modified.csv。对步骤6中做适当修改后将数据导入这两个文件中,并标注相应的R的数据框中的对象为SCV_Usual和SCV_Modified。
10.用命令SCV_Combined&-erge(SCV_Usual,SCV_Modified,by.y=c(&Response&,&A&,&B&, &C&,&D&,&E&),all.x=TRUE,all.y=TRUE)将两个最新的对象结合到一起。
11.用library(foreign)初始化foreign包。
12.用rootstock.url&-http://www./data/r10/rootstock.dta.告诉R在哪里能够找到最新的数据集。
执行此步骤需要互联网连接。
13.使用foreign 包中的read.dta函数将网上的最新的数据导入R:rootstock&-read.dta (rootstock.url)。
以下给出了必要的R代码的固定形式:
刚刚发生了什么&
utils包的函数帮助R用户导入各种外部文件中的数据。下面的截图是上述代码在一个图形工具中编辑运行后的结果,显示了上述代码的运行结果:
函数read. table成功地将数据从Employ.dat文件中导入。utils函数的View确认了已被导入的数据具有所需的类别。read.csv 函数被用来从SCV.csv、SCV_Usual.csv以及 SCV_Modified.csv文件中导入数据。merge函数将普通的和修改的对象的数据结合起来创建一个新的对象,该对象与从SCV.csv文件获得的一样。
接下来,我们使用foreign包中的read.sta函数来完成STATA数据集的读取,可以在网上找到该函数。
刚刚发生了什么
你学会了将许多不同格式的数据导入到R。前面的程序示范了如何在对象本身内改变变量类型。你还学习了如何合并多个数据对象。
从MySQL导入数据
数据通常可从数据库(DB)中得到,如SQL,MySQL等。强调数据库的重要性已超出了本节的范围,我们要介绍的是从一个数据库导入数据。下图的右边显示MySQL测试数据库的一个片段。这个数据库在IO_Time有一个单一的表,其中包括No_of_IO和CPU_Time两个变量。
IO_Time有10个观测值,本书后面许多概念的理解都要用到这个数据集。本节的目标是介绍如何将此表导入R。
Linux用户可以很容易地安装CRAN中的R的RMySQL包。不幸的是,对于Windows用户,由于install. package(&RMySQL&)不能正常运行,所以很难实现安装。对于Windows用户为了得到最好的帮助,可访问. com/installing-the-rmysql-package-on-windows-7/,但是有一些代码有点过时。但问题肯定是可以解决的!该方案及说明同样适用于Linux用户,下图是在Ubuntu 12.04平台运行的结果。由于R安装简单一般,在MySQL中安装RMySQL包时不会出现帮助信息,先运行sudo apt-get install libmysqlclient-dev first,再运行install. package(&RMySQL&)将会出现帮助!如果仍然出现错误,请将包放在/tmp. RtmpeLu7CG/downloaded_packages本地计算机的文件夹中且命名为RMySQL_0.x.x.tar.gz。
然后,你可以将其移动到该目录并执行sudo R CMD INSTALL RMySQL_0.x.x.tar.gz。我们现在设定为使用RMySQL包。
注意到在Ubuntu 12.04终端我们用R -q开始使用R。这减少了我们得到的关于R软件一般的细节信息。首先运行library(RMySQL)调用库,运行d&-dbDriver(&MySQL&)设置驱动程序。运行con&-dbConnect(d,dbname=&test&)指定连接器,然后运行io_data&-dbGetQuerry(con, &select*from IO_Time&)通过查询从MySQL中获取IO_Time表。最后,确认数据已经通过io_data被正确导入R。上图的右侧确认数据已经被正确导入到R。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。

我要回帖

更多关于 不受信任的应用开发者 的文章

 

随机推荐