【问题标题】:Output .txt file with single max value of two vectors输出具有两个向量的单个最大值的 .txt 文件
【发布时间】:2015-06-30 01:14:46
【问题描述】:

希望将唯一 id 的数量和每个 id 的时间段输出到 .txt 文件中。

现在我有:

#Store N and T_Max (ie. Maximum number of periods per individual)
library(plyr)
mydata$id <- as.numeric(as.factor(mydata$ncountry))
N_max <- max(mydata$id)
mydata$count<-do.call(c, lapply(unique(mydata$id), function(curf){
seq(sum(mydata$id==curf))
}))
T_max <- max(mydata$count)
mydata$T_max <- rep(T_max,nrow(mydata)) # make new column 
mydata$N_max <- rep(N_max,nrow(mydata)) # make new column 
myvars1 <- c("T_max","N_max")
unique(myvars1)
newdata1 <- mydata[myvars1]
write.table(newdata1, "NT_input.txt", col.names=FALSE, row.names=FALSE, sep=" ")

它给出了以下样式的 .txt 文件:

194 15
194 15
194 15
194 15
.
.
.

我只想要一行输出,即:

194 15

感谢任何建议。谢谢。

【问题讨论】:

  • 欢迎任何可重现的例子。
  • dplyr 有n_distinct。 data.table 有uniqueN。我认为这个问题不应该用data.table 标记,虽然......似乎与问题的内容无关
  • 为什么不直接使用 T_max 和 N_max,w/o rep?
  • 我收到一个错误,没有代表。表示代码中有一个意外的“,”。

标签: r write.table


【解决方案1】:

你没有放唯一数据,你可以试试这个
uniquedata = unique(myvars1) newdata1 <- mydata[uniquedata] 现在你可以 write.table(newdata1, "NT_input.txt", col.names=FALSE, row.names=FALSE, sep=" ") 这应该工作

【讨论】:

  • 用代码试过了,还是不行。我需要删除我以前的任何代码吗?
  • 忽略上面的评论,代码完美运行!谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-02-01
  • 2023-03-09
  • 2016-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多