The reason it doesn't work easily with reshape/reshape2 is that the order of the rows is not determined. Your answer could be
1957 1958 ... 1985 1986 0.8625000 0.7500000 ... 0.7307692 0.23750000 0.0733945 0.6435644 ... NA 0.05769231 0.5096154 NA ... NA 0.65137615 or 1957 1958 ... 1985 1986 0.0733945 0.6435644 ... NA 0.05769231 0.8625000 0.7500000 ... 0.7307692 0.23750000 0.5096154 NA ... NA 0.65137615 or 1957 1958 ... 1985 1986 0.8625000 0.6435644 ... NA 0.23750000 0.0733945 NA 0.7307692 0.05769231 0.5096154 0.7500000 ... NA 0.65137615 or any other combination of orders. You might not care about the order, but reshape does. The usual way around it is to just make up an order variable, e.g., assuming your data.frame is named "example_data" and the columns are named "year" and "score": example_data <- do.call(rbind, lapply(split(example_data, example_data$year), transform, obs = seq_along(year))) dcast(example_data, obs ~ year, value.var = "score") Best, Ista On Wed, Jul 5, 2017 at 2:16 PM, Thomas Adams <tea...@gmail.com> wrote: > Hi all: > > I'm struggling with getting my data re-formatted using functions in > reshape/reshape2 to get from: > > 1957 0.862500000 > 1958 0.750000000 > 1959 0.300000000 > 1960 0.287500000 > 1963 0.675000000 > 1964 0.937500000 > 1965 0.025000000 > 1966 0.387500000 > 1969 0.087500000 > 1970 0.275000000 > 1973 0.500000000 > 1974 0.362500000 > 1976 0.925000000 > 1978 0.712500000 > 1979 0.337500000 > 1980 0.700000000 > 1981 0.425000000 > 1982 0.212500000 > 1983 0.312500000 > 1986 0.237500000 > 1958 0.643564356 > 1963 0.250000000 > 1968 0.211538462 > 1976 0.317307692 > 1981 0.673076923 > 1985 0.730769231 > 1986 0.057692308 > 1957 0.073394495 > 1966 0.742574257 > 1961 0.082568807 > 1964 0.165137615 > 1965 0.137614679 > 1959 0.128712871 > 1968 0.587155963 > 1969 0.660550459 > 1970 0.477064220 > 1971 0.513761468 > 1973 0.449541284 > 1974 0.128440367 > 1968 0.415841584 > 1977 0.009174312 > 1979 0.339449541 > 1981 0.596330275 > 1982 0.348623853 > 1984 0.146788991 > 1986 0.651376147 > 1959 0.451923077 > 1965 0.750000000 > 1962 0.326732673 > 1964 0.782178218 > 1970 0.336538462 > 1975 0.277227723 > 1978 0.712871287 > 1957 0.509615385 > 1960 0.490384615 > 1961 0.721153846 > 1966 0.298076923 > 1969 0.413461538 > 1971 0.500000000 > 1972 0.692307692 > 1974 0.653846154 > 1984 0.049504950 > 1978 0.442307692 > 1973 0.079207921 > 1983 0.355769231 > 1984 0.038461538 > 1979 0.237623762 > 1982 0.564356436 > > to: > > 1957 1958 1959 1960 ... > 1985 1986 > 0.509615385 0.750000000 0.451923077 0.287500000 ... > 0.651376147 > 0.509615385 > > and so on. It's likely the column lengths will be different, so I'm > guessing padding with NAs will be needed. I have on the order of 1335 rows > with years spanning 1957 to 2016. > > Thank you... > Tom > > -- > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.