Я создаю data.frame
, который будет служить codebook
для существующего data.frame
, а один из столбцов codebook
- это диапазон значений в каждом столбце существующего data.frame
.Мне нужно заполнить каждое из уникальных значений из столбца class
: character
, отделяя их с помощью "/"
1) Я попытался использовать оператор if else
, где условие является class
столбца и function
- это unique()
2) я также использовал оператор if else
и взял первый элемент (используя x[1]
в качестве функции) столбца и получиложидаемый результат
dat
- это существующий фрейм данных
function(dat){
dfr <- data.frame(
row.names = c(1:length(colnames(dat))),
ColumnNames = names(dat),
class = sapply(dat, class),
Range = sapply(dat, function(x)
if(class(x) == "character")
paste(unique(x), sep = " / ")
else if(class(x) == "numeric" || class(x) == "integer")
paste(min(x), max(x), sep = " - ")
else
class(x)),```
function(dat){
dfr <- data.frame(
row.names = c(1:length(colnames(dat))),
ColumnNames = names(dat),
class = sapply(dat, class),
Range = sapply(dat, function(x)
if(class(x) == "character")
x[1]
else if(class(x) == "numeric" || class(x) == "integer")
paste(min(x), max(x), sep = " - ")
else
class(x)),```
Я ожидаю, что на выходе data.frame
будут указаны уникальные значения, которые мне требуются в столбце Range, однако я получаю следующее сообщение об ошибке:
Error in data.frame(row.names = c(1:length(colnames(dat))), ColumnNames =
names(dat), :
arguments imply differing number of rows: 68, 6```
Однако, когда я использовал x [1] в качестве функции, он вернул первый элемент столбца, как и ожидалось