Is it possible to calculate or find out what the original distribution was of a dataset? Is it possible to calculate or find out what the original distribution was of a dataset?
For example: I have (part of) a dataset with 800 weights and I know that the original dataset contained 1000 weights and that 20% of the heaviest weights where excluded from the dataset I have.
I wonder if it is mathematically possible to find the original distribution of the
full dataset? And if this is possible which mathematical or statistical formula can be used? Or are there are packages or function that can do that in R?

If you can safely assume that your underlying data is normally distributed, then as Otto Kässi writes, you have a truncated normal distribution. If you know where it was truncated, this is good (and with 800 data points below the point of truncation, simply using the maximum observation will likely be a sufficiently good estimate of it, and any uncertainty here will likely be dominated by the uncertainty in your normality assumption).
There are a few R packages that deal with the truncated normal (e.g., truncnorm and TruncatedNormal), but these only offer densities, random generation and so forth. You could in principle try fitdistrplus::fitdist() with distr="truncnorm", but the following code crashes my R (see also here):
library(truncnorm)
library(fitdistrplus)
data <- c(35,12,10.5,9,8.8,8.5,7.8,7.2,6.8,6.5,6.2,6,5.8,5.5,5.2,5.1)
fitdist(data, "truncnorm", fix.arg=list(a=5),
    start = list(mean = mean(data), sd = sd(data)))

An alternative would be Crain (1979), which sounds promising based on the abstract but which I unfortunately do not have access to.
Estimating mean and st dev of a truncated gaussian curve without spike gives further possibilities.
