Для полноты.
Данные, слегка модифицированные, чтобы сделать их согласованными и дружественными к R (без пробелов):
origdat <- read.table(header=TRUE, stringsAsFactors=FALSE, text='
Column_1 Column_2 Column_3 Column_4
Male 35 USA DC
Female 10 USA NYC')
newdat <- read.table(header=TRUE, stringsAsFactors=FALSE, text='
Column_Name Nominal Percent
1 Column_1 3 1.00
2 Column_2 69333 99.51
3 Column_3 65766 94.40
4 Column_4 60727 87.16')
Детальный метод с использованием временного data.frame
для хранения выборок:
set.seed(2)
tempdat <- data.frame(Column_Name = names(origdat),
Sample_1 = sapply(origdat, sample, size=1),
stringsAsFactors=FALSE)
Слияние с базой R:
merge(newdat, tempdat, by="Column_Name", all=TRUE)
# Column_Name Nominal Percent Sample_1
# 1 Column_1 3 1.00 Male
# 2 Column_2 69333 99.51 10
# 3 Column_3 65766 94.40 USA
# 4 Column_4 60727 87.16 DC
Слияние с dplyr
:
dplyr::left_join(newdat, tempdat, by="Column_Name")
# Column_Name Nominal Percent Sample_1
# 1 Column_1 3 1.00 Male
# 2 Column_2 69333 99.51 10
# 3 Column_3 65766 94.40 USA
# 4 Column_4 60727 87.16 DC