R数据帧,混合类型返回整数而不是字符串
我有一张表格,里面有不同的屏幕类型。其中一列的类型为string,另一列的类型为integer。 我想逐行检索内容,但我不知道如何告诉R列是我想作为字符串重设的字符串。下面是一个简单的运行示例:R数据帧,混合类型返回整数而不是字符串,r,R,我有一张表格,里面有不同的屏幕类型。其中一列的类型为string,另一列的类型为integer。 我想逐行检索内容,但我不知道如何告诉R列是我想作为字符串重设的字符串。下面是一个简单的运行示例: # create small toy dataset a=c("label1", 3, 56, "foo") b=c("label2", 1, 2, "bar") d=as.data.frame(rbind(a,b)) # in my original code I have a data.frame
# create small toy dataset
a=c("label1", 3, 56, "foo")
b=c("label2", 1, 2, "bar")
d=as.data.frame(rbind(a,b)) # in my original code I have a data.frame
# retrieve a row
e = d[1,]
# take the first column: all is OK
e[1]
# the unexpected stuff:
type(e[1]) # I expected "character" but obtain "list"
unlist(e) # I expected something like "label1"
as.character(e[1]) # I expected something like "label1"
有人能告诉我发生了什么,我该如何纠正吗?当您执行
e[1]
时,您选择的是一个带有一列的data.frame
。尝试执行类(e[1])
。执行e[,1]
操作时,您只选择了列。之所以typeof(e[1])
返回一个list
是因为data.frame
本质上是一个列表。尝试读取?data.frame
,并且向量a
和b
都将是字符。不能在简单的向量中存储混合类。此外,您应该真正使用class()
来确定对象的行为。