В фрейме данных я хочу иметь возможность разделять столбцы с числовыми типами из столбцов со строками/символами.Является ли это принуждением? Почему R говорит мне, что это одни и те же типы данных?
Вот мои данные:
test=data.frame(col1=sample(1:20,10),col2=sample(31:50,10),
col3=sample(101:150,10),col4=sample(c('a','b','c'),10,replace=T))
который выглядит как
col1 col2 col3 col4
1 2 41 132 c
2 11 47 141 b
3 13 39 135 a
4 12 31 117 b
5 19 42 106 a
6 8 50 118 a
7 14 33 149 a
8 6 48 148 b
9 16 37 150 b
10 9 34 140 a
Теперь вот странное дело, если я TypeOf строке/цв, содержащего символ, R говорит, что это целое число
> typeof(test[1,4])
[1] "integer"
Если я что-то вроде этого
> apply(test,2,typeof)
col1 col2 col3 col4
"character" "character" "character" "character"
R говорит, что все они персонажи. Кроме того,
> lapply(test,typeof)
[1] "integer" "integer" "integer" "integer"
Опять же, что происходит, и есть хороший способ, чтобы различать между колоннами с символами и столбцами с целыми числами?
В столбце data.frame отсутствует столбец символов. Это фактор. – Roland
Правда. 'apply' коэрцирует факторы в символы, см .:' as.matrix (test) ' – Spacedman