楼主: dxystata
1804 4

[问答] dataframe中如何得到 [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2013-7-4 23:00:06 |AI写论文
50论坛币
dataframe  v1 v2
a   1
b   1
b   2
c   2
c   3
c   4
如何得到
v1 v2
a    1
b    1
      2
c    2
      3
      4

谢谢!

关键词:Dataframe Frame Data Fram FRA 如何

本帖被以下文库推荐

  • · R学习|主题: 262, 订阅: 161

沙发
ryusukekenji 发表于 2013-7-5 00:43:30
  1. A1 <- data.frame(v1=rep(c('a','b','c'),1:3),v2=c(1,1,2,2,3,4))
  2. rn <- as.numeric(unlist(lapply(split(A1,A1$v1),function(x) rownames(x[1,]))))
  3. A1$v1 <- 'NA'
  4. A1$v1[rn] <- as.factor(c('a','b','c'))
  5. A1
复制代码

https://bbs.pinggu.org/thread-2515424-1-1.html
  1. a="sex"
  2. b=matrix(1:2,nrow=2)
  3. rownames(b) <- c(a,"")
  4. colnames(b)<-""
  5. b
复制代码
比较起以上仁兄的matrix,似乎太多步骤了...

藤椅
dxystata 发表于 2013-7-5 00:52:19
ryusukekenji 发表于 2013-7-5 00:43
https://bbs.pinggu.org/thread-2515424-1-1.html
比较起以上仁兄的matrix,似乎太多步骤了...{:soso_e14 ...
如果v1 的取值很多,
这样写A1$v1[rn] <- as.factor(c('a','b','c')) 很麻烦啊

板凳
zhangyangsmith 发表于 2013-7-5 15:09:05
Suppose the variable "v1" is of type character:
  1. A1 <- data.frame(v1=rep(c('a','b','c'),1:3),v2=c(1,1,2,2,3,4), stringsAsFactors = F)

  2. with(A1, data.frame(v1 = do.call(c, lapply(split(v1, v1), function(cv) c(unique(cv), rep("", length = length(cv) - 1)))), v2 = v2, row.names = NULL))
复制代码

报纸
guo.bailing 发表于 2013-7-5 19:54:34
  1. > x1 <- c("a","b","b","c","c","c")
  2. > x2 <- c(1,1,2,2,3,4)
  3. > a <- match(c("a","b","c"),x1)
  4. >
  5. > x1[-a] <- ""
  6. >
  7. > x <- data.frame(x1, x2)
  8. > x
  9.   x1 x2
  10. 1  a  1
  11. 2  b  1
  12. 3     2
  13. 4  c  2
  14. 5     3
  15. 6     4
  16. >
复制代码


已有 1 人评分学术水平 热心指数 收起 理由
ryusukekenji + 1 + 1 我很赞同,哈哈... ^_^

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

自助者,天助之!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-27 15:26