【发布时间】:2016-10-19 06:50:31
【问题描述】:
我是 R 语言的初学者,我需要使用“Yield_CRD”表来实现以下“结果”表。任何帮助表示赞赏。
我需要获取下面的“结果”表。我怎样才能使用 r 来实现这一点。请帮我。
Yield_CRD:
CRD YEAR Har_Ac Plant_Ac Har_Yield Plant_Yield
10 1951 1498300 1568100 39.5 37.7
10 1952 1551700 1589500 61.5 60
10 1953 1628200 1675200 55.1 53.6
10 1954 1451400 1504800 59.7 57.6
10 1955 1498100 1585700 46.3 43.7
10 1956 1214400 1532600 45.8 36.3
10 1957 1448900 1505500 58 55.8
10 1958 1483900 1567100 53.5 50.7
10 1959 1871400 1957900 58.3 55.7
10 1960 1855700 1945700 64.8 61.8
20 1951 1498300 1568100 49.5 47.7
20 1952 1551700 1589500 71.5 70
20 1953 1628200 1675200 65.1 63.6
20 1954 1451400 1504800 69.7 67.6
20 1955 1498100 1585700 56.3 53.7
20 1956 1214400 1532600 55.8 46.3
20 1957 1448900 1505500 68 65.8
20 1958 1483900 1567100 63.5 60.7
20 1959 1871400 1957900 68.3 65.7
20 1960 1855700 1945700 74.8 71.8
现在我需要下面的“结果”表:
对于 CRD (10):
Year HHar_Ac Plant_Ac Har_Yield Plant_Yield
1951 1498300 1568100 39.5 37.7
1951 1498300 1568100 39.5 37.7
1952 1551700 1589500 61.5 60
1953 1628200 1675200 55.1 53.6
1954 1451400 1504800 59.7 57.6
1955 1498100 1585700 46.3 43.7
1956 1214400 1532600 45.8 36.3
1957 1448900 1505500 58 55.8
1958 1483900 1567100 53.5 50.7
1959 1871400 1957900 58.3 55.7
1960 1855700 1945700 64.8 61.8
我有以下代码,但它不起作用
flows <- list()
i <- which(YieldCRD[,1] == 20, arr.ind=TRUE)
t0 <- i[1]
tend <- i[length(i)]
for (j in t0:tend) {
flows <- t(as.numeric(YieldCRD[j,2:ncol(YieldCRD)]))
colnames(flows) <- c('Year','Harvest_Acres','Planted_Acres','Harvest_Yield','Planted_Yield')
}
【问题讨论】:
-
您是否尝试根据其中一个列拆分数据集?有很多选择。到目前为止,我最喜欢的是
dplyr -
subset(Yield_CRD, CRD==10, select=-CRD)但请阅读stackoverflow.com/questions/9860090/why-is-better-than-subset