楼主: 碧落侍郎
13029 11

[问答] R怎么查看导入的数据,最好是能够让数据表仍旧以行列形式表示 [推广有奖]

  • 1关注
  • 0粉丝

教授

81%

还不是VIP/贵宾

-

威望
0
论坛币
3968 个
通用积分
10.0213
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
12425 点
帖子
909
精华
0
在线时间
703 小时
注册时间
2012-11-10
最后登录
2022-5-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如查看导入的xlsx数据,我的过程是:

加载xlsx扩展包
read.xlsx("F:\训练集\数据1.xls",header=TRUE)

然后呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据表 xlsx READ Head xls excel

沙发
haoli1991 发表于 2014-1-27 01:22:37 |只看作者 |坛友微信交流群
我一般喜欢用:
Data<-read.xlsx("F:\训练集\数据1.xls",header=TRUE);
names(Data) # check variable names
head(Data)   # similar "view" in SAS
attach(Data)  # Use variables independentaly
...
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Nicolle + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
碧落侍郎 发表于 2014-1-27 04:55:33 |只看作者 |坛友微信交流群
haoli1991 发表于 2014-1-27 01:22
我一般喜欢用:
Data
你好,调用函数之后老是出现:显示找不到对象‘Data’
而且这个办法好像没办法把数据用行列的形式显示出来?

使用道具

板凳
kaifengedu 发表于 2014-2-3 22:36:24 |只看作者 |坛友微信交流群
碧落侍郎 发表于 2014-1-27 04:55
你好,调用函数之后老是出现:显示找不到对象‘Data’
而且这个办法好像没办法把数据用行列的形式显示出 ...
你是否加载了xlsx包,如果以行列形式查看直接输入Data即可。

使用道具

报纸
碧落侍郎 发表于 2014-2-3 23:07:16 |只看作者 |坛友微信交流群
kaifengedu 发表于 2014-2-3 22:36
你是否加载了xlsx包,如果以行列形式查看直接输入Data即可。
还是不行,这次出现的代码是:function (..., list = character(), package = NULL, lib.loc = NULL,
    verbose = getOption("verbose"), envir = .GlobalEnv)
{
    fileExt <- function(x) {
        db <- grepl("\\.[^.]+\\.(gz|bz2|xz)$", x)
        ans <- sub(".*\\.", "", x)
        ans[db] <- sub(".*\\.([^.]+\\.)(gz|bz2|xz)$", "\\1\\2",
            x[db])
        ans
    }
    names <- c(as.character(substitute(list(...))[-1L]), list)
    if (!is.null(package)) {
        if (!is.character(package))
            stop("'package' must be a character string or NULL")
        if (any(package %in% "base"))
            warning("datasets have been moved from package 'base' to package 'datasets'")
        if (any(package %in% "stats"))
            warning("datasets have been moved from package 'stats' to package 'datasets'")
        package[package %in% c("base", "stats")] <- "datasets"
    }
    paths <- find.package(package, lib.loc, verbose = verbose)
    if (is.null(lib.loc))
        paths <- c(path.package(package, TRUE), if (!length(package)) getwd(),
            paths)
    paths <- unique(paths[file.exists(paths)])
    paths <- paths[file_test("-d", file.path(paths, "data"))]
    dataExts <- tools:::.make_file_exts("data")
    if (length(names) == 0L) {
        db <- matrix(character(), nrow = 0L, ncol = 4L)
        for (path in paths) {
            entries <- NULL
            packageName <- if (file_test("-f", file.path(path,
                "DESCRIPTION")))
                basename(path)
            else "."
            if (file_test("-f", INDEX <- file.path(path, "Meta",
                "data.rds"))) {
                entries <- readRDS(INDEX)
            }
            else {
                dataDir <- file.path(path, "data")
                entries <- tools::list_files_with_type(dataDir,
                  "data")
                if (length(entries)) {
                  entries <- unique(tools::file_path_sans_ext(basename(entries)))
                  entries <- cbind(entries, "")
                }
            }
            if (NROW(entries)) {
                if (is.matrix(entries) && ncol(entries) == 2L)
                  db <- rbind(db, cbind(packageName, dirname(path),
                    entries))
                else warning(gettextf("data index for package %s is invalid and will be ignored",
                  sQuote(packageName)), domain = NA, call. = FALSE)
            }
        }
        colnames(db) <- c("Package", "LibPath", "Item", "Title")
        footer <- if (missing(package))
            paste0("Use ", sQuote(paste("data(package =", ".packages(all.available = TRUE))")),
                "\n", "to list the data sets in all *available* packages.")
        else NULL
        y <- list(title = "Data sets", header = NULL, results = db,
            footer = footer)
        class(y) <- "packageIQR"
        return(y)
    }
    paths <- file.path(paths, "data")
    for (name in names) {
        found <- FALSE
        for (p in paths) {
            if (file_test("-f", file.path(p, "Rdata.rds"))) {
                rds <- readRDS(file.path(p, "Rdata.rds"))
                if (name %in% names(rds)) {
                  found <- TRUE
                  if (verbose)
                    message(sprintf("name=%s:\t found in Rdata.rds",
                      name), domain = NA)
                  thispkg <- sub(".*/([^/]*)/data$", "\\1", p)
                  thispkg <- sub("_.*$", "", thispkg)
                  thispkg <- paste0("package:", thispkg)
                  objs <- rds[[name]]
                  lazyLoad(file.path(p, "Rdata"), envir = envir,
                    filter = function(x) x %in% objs)
                  break
                }
                else if (verbose)
                  message(sprintf("name=%s:\t NOT found in names() of Rdata.rds, i.e.,\n\t%s\n",
                    name, paste(names(rds), collapse = ",")),
                    domain = NA)
            }
            if (file_test("-f", file.path(p, "Rdata.zip"))) {
                warning("zipped data found for package ", sQuote(basename(dirname(p))),
                  ".\nThat is defunct, so please re-install the package.",
                  domain = NA)
                if (file_test("-f", fp <- file.path(p, "filelist")))
                  files <- file.path(p, scan(fp, what = "", quiet = TRUE))
                else {
                  warning(gettextf("file 'filelist' is missing for directory %s",
                    sQuote(p)), domain = NA)
                  next
                }
            }
            else {
                files <- list.files(p, full.names = TRUE)
            }
            files <- files[grep(name, files, fixed = TRUE)]
            if (length(files) > 1L) {
                o <- match(fileExt(files), dataExts, nomatch = 100L)
                paths0 <- dirname(files)
                paths0 <- factor(paths0, levels = unique(paths0))
                files <- files[order(paths0, o)]
            }
            if (length(files)) {
                for (file in files) {
                  if (verbose)
                    message("name=", name, ":\t file= ...", .Platform$file.sep,
                      basename(file), "::\t", appendLF = FALSE,
                      domain = NA)
                  ext <- fileExt(file)
                  if (basename(file) != paste0(name, ".", ext))
                    found <- FALSE
                  else {
                    found <- TRUE
                    zfile <- file
                    zipname <- file.path(dirname(file), "Rdata.zip")
                    if (file.exists(zipname)) {
                      Rdatadir <- tempfile("Rdata")
                      dir.create(Rdatadir, showWarnings = FALSE)
                      topic <- basename(file)
                      rc <- .External(C_unzip, zipname, topic,
                        Rdatadir, FALSE, TRUE, FALSE, FALSE)
                      if (rc == 0L)
                        zfile <- file.path(Rdatadir, topic)
                    }
                    if (zfile != file)
                      on.exit(unlink(zfile))
                    switch(ext, R = , r = {
                      library("utils")
                      sys.source(zfile, chdir = TRUE, envir = envir)
                    }, RData = , rdata = , rda = load(zfile,
                      envir = envir), TXT = , txt = , tab = ,
                      tab.gz = , tab.bz2 = , tab.xz = , txt.gz = ,
                      txt.bz2 = , txt.xz = assign(name, read.table(zfile,
                        header = TRUE, as.is = FALSE), envir = envir),
                      CSV = , csv = , csv.gz = , csv.bz2 = ,
                      csv.xz = assign(name, read.table(zfile,
                        header = TRUE, sep = ";", as.is = FALSE),
                        envir = envir), found <- FALSE)
                  }
                  if (found)
                    break
                }
                if (verbose)
                  message(if (!found)
                    "*NOT* ", "found", domain = NA)
            }
            if (found)
                break
        }
        if (!found)
            warning(gettextf("data set %s not found", sQuote(name)),
                domain = NA)
    }
    invisible(names)
}
<bytecode: 0x062dc580>
<environment: namespace:utils>


使用道具

地板
笑意苍凉 发表于 2014-2-4 00:28:59 |只看作者 |坛友微信交流群
我的建议是楼主把这个xlsx的文件先另存为csv格式的吧,有时候读xlsx文件不仅很慢而且很容易出错。
导入之后再用head()看一看就好了。

使用道具

7
碧落侍郎 发表于 2014-2-4 00:57:16 |只看作者 |坛友微信交流群
笑意苍凉 发表于 2014-2-4 00:28
我的建议是楼主把这个xlsx的文件先另存为csv格式的吧,有时候读xlsx文件不仅很慢而且很容易出错。
导入之后 ...
还是不行,依旧是一大堆代码

使用道具

8
笑意苍凉 发表于 2014-2-5 07:14:24 |只看作者 |坛友微信交流群
碧落侍郎 发表于 2014-2-4 00:57
还是不行,依旧是一大堆代码
这个很奇怪……一般来说csv文件是不会出错的。你确定你的原始数据没问题吗?比如是不是不同单元格的property比较混乱~再不行就先保存到note pad里面看一看啊~这种情况太少见了~觉得是数据格式有问题吧

使用道具

9
intchen 发表于 2014-2-5 13:38:02 |只看作者 |坛友微信交流群
楼主区分大小写没有?Data和data不同的哟!

使用道具

10
碧落侍郎 发表于 2014-2-5 17:21:36 |只看作者 |坛友微信交流群
笑意苍凉 发表于 2014-2-5 07:14
这个很奇怪……一般来说csv文件是不会出错的。你确定你的原始数据没问题吗?比如是不是不同单元格的prope ...
原来路径得用\\,我直接把文件路径拷贝到R里面去了,把\改成\\后可以读取csv跟txt,但是还是无法读取xls,会出现代码:
错误于make.names(col.names, unique = TRUE) : 多字节字符串1有错
此外: 警告信息:
In read.table("F:\\自学训练集\\校赛B数据.xls", head = TRUE) :
  incomplete final line found by readTableHeader on 'F:\鑷璁粌闆哱鏍¤禌B鏁版嵁.xls'

用file.choose()能读取csv跟txt,但是不知道为什么选择xls文件后还是会出现类似上面的代码
错误于make.names(col.names, unique = TRUE) : 多字节字符串1有错
此外: 警告信息:
In read.table(file.choose(), header = TRUE) :
  incomplete final line found by readTableHeader on 'F:\鑷璁粌闆哱鏍¤禌B鏁版嵁.xls'

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-8 07:26