string - R:将数据框行转换为字符向量

标签 string r vector type-conversion

短版:

尝试将数据帧的单行转换为字符向量时,我不明白 as.character 的行为。

> mydf <- data.frame("myvar1"=c("mystring","2"),"myvar2"=c("mystring","3"))
> mydf # nice!
myvar1   myvar2
1 mystring mystring
2        2        3
> as.character(mydf[1,])
[1] "2" "2"
> as.character(as.vector(mydf[1,]) ) 
[1] "2" "2"

也许有人可以给我解释最后 2 行输出和正确的方法?非常感谢。

背景/目的:

我想用lre()以检测数据帧的一行中连续出现的值(具有不同数据类型的列)。

问题:lre()需要一个向量,向量需要一个明确的数据类型(整数、字符、因子等)。我这里的想法是将数据帧行转换为字符向量,以避免通过转换丢失数据。

最佳答案

您的数据框列不是字符,而是因素。

创建数据框时,默认情况下字符是因子。如果您选择一列,您可以清楚地看到这一点

R> mydf[,1]
[1] mystring 2       
Levels: 2 mystring

为了避免这种行为,设置 stringsAsFactors论据 FALSE
mydf = data.frame("myvar1"=c("mystring", "2"),
                    "myvar2"=c("mystring", "3"), 
                     stringsAsFactors=FALSE)

你也应该看看这个问题:How to convert a data frame column to numeric type?

关于string - R:将数据框行转换为字符向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24492426/

相关文章:

c++ - 我是否正确访问了这个 vector 变量?

c# - 使用 Vector4 预乘 Alpha 合成

string - 在 Verilog 中将 ASCII 字符分配给连线

java - 在java中求一个数字的累加和时,我们应该使用字符串还是列表来存储数字?

xml - 使用 R 的 xmlEventParse 存储 XML 节点值以进行过滤输出

r - 如何从 ggplot2 scale_color_manual() 中删除未使用的值?

python - 数据框:如何删除字符串中的点

ios - stringByReplacingCharactersInRange 不起作用?

r - 按组将 data.frame 拆分为向量列表而不是 data.frames 列表

c++ - 在 C++ vector 中手动执行内存重新分配