【问题标题】:Keep all data together - one master file将所有数据保存在一起 - 一个主文件
【发布时间】:2014-02-27 14:29:02
【问题描述】:

我的数据有问题。我想将我的数据保存在一个文件中。我加载到 R 中的 csv 文件很少。

 > list_of_data
 [1] "Weight.csv" "Lenght.csv" "Age.csv" "Place of Birth.csv"           
 [5] "Sex.csv" "Driver License.csv" "Nationality.csv" 

在每个文件中,我都有一个关于患者的信息:

重量.csv:

Name    Weight         
Mark      76
Criss     82
Kate      61
Robb      80
Denis     72

年龄.csv:

Name      Age         
Mark      19
Criss     17
Kate      24
Robb      33
Denis     23

我想将所有信息移动到一个矩阵中。所以我创建了一个新矩阵:

data_mat <- matrix(0, nrow = 5,ncol = 7)
colnames(data_mat) <- c("Name", "Weight", "Lenght", "Age", "Place of Birth", "Sex", "Driver License", "Nationality")
rownames(data_mat) <- c("Mark", "Criss", "Kate", "Robb", "Denis")

我不知道如何告诉 R 在其他 csv 文件中找到有关患者的信息并将它们放在我的新矩阵中。有什么想法吗?

【问题讨论】:

  • 你看过merge吗?
  • 你可以看看here
  • 不能data.frame(Weight.csv$Name, Weight.csv$Weight, Age.csv$Age)吗?

标签: r


【解决方案1】:

您将希望将所有单独的 csv 合并在一起。

dat.all<-merge(csv1,csv2,by="name")
dat.all<-merge(dat.all,csv3,by="name")
...

只需在所有 csv 文件中执行此操作,然后您就会拥有所需的内容

【讨论】:

    【解决方案2】:

    您还可以在所有文件中使用cbind,删除除第一个以外的所有文件的name 列。

    Weight <- data.frame(Name = c("Mark", "Criss", "Kate"), Weight = c(76, 82, 61))
    Age <- data.frame(Name = c("Mark", "Criss", "Kate"), Age = c(19, 17, 24))
    
    cbind(Weight, Age = Age[, "Age"])
    ##    Name Weight Age
    ## 1  Mark     76  19
    ## 2 Criss     82  17
    ## 3  Kate     61  24
    

    【讨论】:

    • @Thomas,我们应该总是注释掉结果吗?我不知道。
    • 不一定。我通常将较大的结果与代码分开排版,但如果只是像这里这样的几行,很容易将结果放在 cmets 中,以模仿控制台输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多