【发布时间】:2019-01-10 11:41:49
【问题描述】:
我有一张这样的桌子:
ID A10 A11 A12 A20 A21 A22 A30 A31 A32
Apple 1 1 1 1 1 1 1 1 1
Banana 2 2 2 2 2 2 2 2 2
Pear 3 3 3 3 3 3 3 3 3
我的第一个问题是,我可以使用 "*" 之类的东西来对多列进行子集化吗?就像如果我想对包含 A2 (A20, A21, A22) 的列进行子集化,我该如何快速完成?
我的第二个问题是如何将此数据框拆分为多个表?我想根据"A1""A2"和"A3"(与我的第一个问题相关)拆分这个数据框,这将是:
df1<-
ID A10 A11 A12
Apple 1 1 1
Banana 2 2 2
Pear 3 3 3
df2<-
ID A20 A21 A22
Apple 1 1 1
Banana 2 2 2
Pear 3 3 3
df3<-
ID A30 A31 A32
Apple 1 1 1
Banana 2 2 2
Pear 3 3 3
我该怎么做?
对于另一种情况,我有一个列名的字符长度不同的数据框,例如:
ID BSS20 BSS40 BSS60 W01 W02 W03 BW20 BW40 BW60 SS20 SS40 SS60
Apple 1 1 1 1 1 1 1 1 1
Banana 2 2 2 2 2 2 2 2 2
Pear 3 3 3 3 3 3 3 3 3
如何将数据拆分为三个新的数据帧,每个数据帧必须包含W0,例如:
df1<-
ID BSS20 BSS40 BSS60 W01 W02 W03
Apple 1 1 1 1 1 1
Banana 2 2 2 2 2 2
Pear 3 3 3 3 3 3
df2<-
ID BW20 BW40 BW60 W01 W02 W03
Apple 1 1 1 1 1 1
Banana 2 2 2 2 2 2
Pear 3 3 3 3 3 3
df3<-
ID SS20 SS40 SS60 W01 W02 W03
Apple 1 1 1 1 1 1
Banana 2 2 2 2 2 2
Pear 3 3 3 3 3 3
我的专栏是由*20 *40 *60和三个特殊字符W01 W02 W03组成的,如何用r表达好?
【问题讨论】: